各种编程语言的代码覆盖率工具汇总

最近两年在做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/

master

Stay hungry, stay foolish.

2 Comments

  1. 恩恩,mark下来,亲爱的要是都教会我要多久呢?

发表评论

电子邮件地址不会被公开。 必填项已用*标注