统计代码覆盖度

来源:互联网 发布:罗京 艾滋 知乎 编辑:程序博客网 时间:2024/05/22 10:44

        本文记录一次添加代码覆盖度统计的经历。

        工程的开发环境是Windows,采用VS编译器。在网上搜索没有找到合适的工具(免费的工具)。因此使用GCCGCOV功能完成统计,感谢GCCMinGW

        第一步:使用MingW编译工程,可直接编写Makefile,也可采用eclipse的CDT或者CMake工具。其关键是加入编译参数-fprofile-arcs -ftest-coverage

        第二步,运行程序得到统计数据,

        第三步:可视化统计数据,GCC自带的GCOV可视化效果差,网络推荐lcov。该工具使用Perl编写,并且与Linux系统耦合,无法在Windows上直接使用,但可以使用MinGW下的msys环境中运行。运行完lcovgenhtml后可以的到网页形式的统计数据,效果不错。

 

        题外:由于MinGW安装在Program File的下面,路径有空格,运行msys.bat时遇到小问题。需要修改msys.bat两处代码:

line 46:

if NOT EXIST %WD%msys-1.0.dll set WD=%~dp0\bin\

改为

if NOT EXIST %WD%msys-1.0.dll set WD="%~dp0\bin\"

line 103

start %WD%sh --login -i

改为

start "msys sh" %WD%sh --login -i

后者的问题是start指令把第一个带有”的参数当做标题,因此需要显式加入标题。

 

其实也可以直接运行bin\sh.exe --login -i