分类: LINUX
2010-12-23 17:58:13
使用到的相关工具:
1 gcc/g++
gcc/g++是大家熟悉的编译工具
2
lcov(包含lcov和genhtml两个小工具)
可以到
下载。
安装lcov工具
根据下载安装包的readme文件,安装工具包。
make install
安装完成后,就有两个命令可用:lcov 和 genhtml
代码覆盖率测试详细步骤:
1 编写代码;
2 编写makefile,每条编译语句(包括link)里添加 -fprofile-arcs
-ftest-coverage 参赛选项;
3 make代码,生成执行文件,同时生成了.gcno文件;
4
运行程序执行测试,测试过程中,生成.gcda文件;
5 搜集代码覆盖率信息,并生成app.info文件
lcov --directory .
--capture --output-file app.info
6 将app.info代码覆盖率信息文件,转换成html格式的测试报告
genhtml -o result app.info
实例:
程序文件
/// CCADemo.cpp
#include
#include
#include
bool IsLarger(const int nNum1, const int nNum2)
{
if (nNum1 >
nNum2)
{
return true;
}
else
{
return
false;
}
}
int main(int argc, char** argv)
{
int nRetVal = false;
int nNum1 =
0;
int nNum2 = 0;
if (argc != 3)
{
printf("Fail : check argc
!=3\r\n");
goto Exit0;
}
nNum1 = atoi(argv[1]);
nNum2 =
atoi(argv[2]);
printf("%d is larger than %d ? %d \r\n", nNum1, nNum2,
IsLarger(nNum1, nNum2));
Exit0:
return nRetVal;
}
makefile文件
CC = g++
Demo = demo
CCA = -fprofile-arcs
-ftest-coverage -g
COMPILE = -c -fPIC -D_DEBUG
$(Demo) :
CCADemo.o
$(CC) -o $(Demo) CCADemo.o $(CCA)
CCADemo.o :
CCADemo.cpp
$(CC) $(COMPILE) $(CCA) $^
编译程序:make
运行程序:
./demo
./demo 2 3
./demo 3 2
收集代码覆盖率信息,生成cca.data文件
lcov --directory . --capture --output-file
cca.data
将cca.data文件转换成html格式报告
genhtml --no-source -o result cca.data
查看result目录,即可得。