在C++中单元测试的框架有很多,但是能够生成覆盖率报告的却很少,接下来带大家一步一步集成测试环境。

本次我们选用的测试软件是OpenCppCoverage,相关内容可以访问主页:https://opencppcoverage.codeplex.com/   首先在下载OpenCppCoverage 0.9.2.1 (64 bits)并安装(本次所有软件和开发环境都是基于x64),然后配置jenkins。

1、jenkins的安装

下载地址:http://ftp.yz.yamagata-u.ac.jp/pub/misc/jenkins/war/1.620/jenkins.war

功能:

Jenkins是基于Java开发的一种持续集成工具,用于监控持续重复的工作,功能包括:
(1)  持续的软件版本发布/测试项目。
(2)  监控外部调用执行的工作。

启动:

首先保证系统中已经安装了jdk,最好是jdk1.5以上。
第一种启动方法,切换到jenkins.war存放的目录,输入如下命令:
$ java -jar jenkins.war
然后在浏览器中(推荐用火狐)输入localhost:8080,localhost可以是本机的ip,也可以是计算机名。就可以打开jenkins
第二种方法是用tomcat打开
解压tomcat到某个目录,如/usr/local,进入tomcat下的/bin目录,启动tomcat
将jenkins.war文件放入tomcat下的webapps目录下,jenkins会自动在webapps目录下建立jenkins目录,所以在地址栏上需要输入的地址于上一种方法有点不一样,应修改为localhost:8080/jenkins。

配置:

当java和tomact环境安装好以后,在浏览器中输入网址:localhost:8080/jenkins就会跳转到jenkins主界面:

jest config 怎么屏蔽覆盖率报错_xml


在系统管理-->系统设置中配置jdk路径:


新建:


在配置中基本就是这三个地方需要注意


下面主要讲一下命令行代码的含义:

cd /d C:\Users\handh\.jenkins\workspace\test5
del Coverage.xml
cd /d F:\VSWorkSpace\Server\test1
svn update
cd /d  F:\VSWorkSpace\Server\test1\x64\Debug
OpenCppCoverage.exe --sources F:\VSWorkSpace\Server\test1\test2 --export_type=cobertura:C:\Users\handh\.jenkins\workspace\test5\Coverage.xml -- test2.exe
这些都是Dos下可以执行的命令,在我本地配置配置如图




OpenCppCoverage.exe --sources path --export_type=cobertura -- YourProgram.exe

会默认在你的exe文件内生成一个XXCoverage.xml文件(XX为你的程序名),网页报告就是根据这个xml文件生成的。但是jenkins不会再exe所在的文件查找xml文件,而是会在C:\Users\handh\.jenkins\workspace\YourProgram中查找,所以在执行改代码前要先把C:\Users\handh\.jenkins\workspace\YourProgram中的xml文件删除:

cd /d C:\Users\handh\.jenkins\workspace\test5
del Coverage.xml

至于

cd /d F:\VSWorkSpace\Server\test1
svn update

这两句是用svn更新本地工程文件的,在后面将会讲到

因此,我们在生成xml文件时要在C:\Users\handh\.jenkins\workspace\YourProgram中生成,所以:

OpenCppCoverage.exe --sources F:\VSWorkSpace\Server\test1\test2 --export_type=cobertura:C:\Users\handh\.jenkins\workspace\test5\Coverage.xml -- test2.exe

其中--export_type=cobertura:C:\Users\handh\.jenkins\workspace\test5\Coverage.xml 表示----export_type=type:export_path

更多命令解析详见https://opencppcoverage.codeplex.com/wikipage?title=Command-Line%20Reference

所有的配置完成后保存即可,然后点击“立即构建”

jest config 怎么屏蔽覆盖率报错_xml_02


如果构建结果成功的话,应该会出现蓝色原点,而且控制台输出 为success

jest config 怎么屏蔽覆盖率报错_xml文件_03


点击“Coverage Report”可以查看报告:


jest config 怎么屏蔽覆盖率报错_Server_04