报告集成到jenkins才是最终目的,因此又进行了部分资料查找,得到html和xml报告集成jenkins的配置如下:
一 集成html报告
这种方式集成在你已经用gcov+lcov生成了html报告的基础上,在此只需要将它放到jenkins中,步骤如下:
1 打开jenkins->进入工程->配置->增加构建后操作步骤->Publish HTML reports
2 生成html报告:配置->增加构建步骤->Execute shell
-
cd your_path sh exittest.sh(上一节中exit程序的脚本) cd your_gcda_gcno_path lcov -c -o coverage.info -b . -d . genhtml coverage.info -o coverage cp coverage_result /data/report/coverage #注意该路径与html报告的读取路径一致
3 运行完毕,即可在jenkins页面左侧和中上侧看到THML Report 点开即可查看详情,如下
二 集成Cobertura的xml报告
集成到Cobertura与集成到html类似,都需要配置构建后步骤和Execute shell,如下
1 jenkins的Cobertura插件
1) jenkins安装插件Cobertura: jenkins页面->系统管理->管理插件,可在该页面搜索安装插件Cobertura
2)在工程的配置中,增加构建后操作步骤->Publish Cobertura Coverage Report
3) 配置Cobertura
2 配置Execute shell,得到xml文件
1)在jenkins的工程配置中增加构建步骤->Execute shell
sudo sh /data/ad_server/exittest.sh cd your_code_path sudo gcovr --xml-pretty -r . --output /data/AdServerTest/coverage.xml
2)在jenkins构建后即可查看结果
三 问题
1 jenkins配置后生成xml报告失败,报错如下:
[Cobertura] No coverage results were found using the pattern ‘/data/cppcoverage/xml/coverage.xml‘ relative to ‘/data/AdServerTest‘. Did you enter a pattern relative to the correct directory? Did you generate the XML report(s) for Cobertura?
原因:jenkins路径未关联,具体我也还没搞清楚,将生成的xml报告更改为jenkins提示的 /data/AdServerTest,路径后即可。
2 在查看详细报告时,无法查看具体代码行数覆盖,提示Source code is unavailable,如下:
原因:我还没解决,后续补充