1. 程式人生 > >各種程式語言的程式碼覆蓋率工具彙總---重要

各種程式語言的程式碼覆蓋率工具彙總---重要

源地址:

最近兩年在做Linux虛擬化開源專案,由於專案程式碼龐大且開發人員分散在世界各個角落,我們對其測試的方法和實踐中,對單元測試等做得並不多(KVM的kvm-unit-tests可以算一個吧),對單元測試程式碼覆蓋率等也沒有做過多的要求。不過以前做電子商務測試時,那時技術部門曾主推單元測試(主要是JUnit測試Java程式碼),且將單元測試的程式碼覆蓋率有較為嚴格的要求,我也做過一小段時間的研究。偶然看到淘寶公直的一篇文章(Linux下c/c++專案程式碼覆蓋率的產生方法),就用他給的例項程式碼使用了一下gcov和lcov查看了一下C/C++程式碼覆蓋率的統計。

對於Linux下的C/C++程式碼,可以在gcc/g++工具編譯程式碼時加上“–coverage”選項來生成可用於覆蓋率分析的二進位制檔案,然後用gcov命令來生成覆蓋率統計情況,也可用lcov工具來生成html版本的可讀性很好的程式碼覆蓋率報告。

下面列舉一下各種程式語言的程式碼覆蓋率工具吧。
c/c++:    gcc+gcov+lcov;(單元測試:CUnit、CPPUnit、Google GTest等)
Java :    Maven cobertura 外掛,Clover,EMMA,Jtest;
Python:    PyUnit + coverage.py;
PHP:    phpunit + –coverage-html + Xdebug ;
Perl:    Test::Class 和 Devel::Cover;
Shell:    shUnit2 + shcov;

更多的工具資料請參考如下:
程式碼覆蓋率工具: http://en.wikipedia.org/wiki/Code_coverage


單元測試框架:http://en.wikipedia.org/wiki/List_of_unit_testing_frameworks

gcc manual: man gcc (搜尋–coverage)

http://ltp.sourceforge.net/coverage/lcov.php

shunit2.googlecode.com

http://sdet.org/?p=212

http://toast.taobao.org/