【发布时间】:2013-03-26 18:54:27
【问题描述】:
我想使用 Cobertura 设置我的 Jenkins 以跟踪代码覆盖率。 不幸的是,我无法生成有效的 xml。
我正在使用:
- gcovr 2.5 预发布版 (r2774)
- Xcode 4.6.1 构建版本 4H512
我的项目正在正确生成代码覆盖率文件,但使用 gcovr 创建的报告没有用。
我用来生成报告的命令是:
gcovr -r /Users/Shared/Jenkins/Home/jobs/CodeCoverage/workspace
--object-directory /Users/Shared/Jenkins/Home/Library/Developer/Xcode/DerivedData/myProject-aooceqwwovrizceerghqvhflcfty//Build/Intermediates/myProject.build/Development/myProject.build/Objects-normal/x86_64
--exclude '.*Developer.*'
--exclude '.*Tests.*'
--xml
这将为我创建这个输出:
<?xml version="1.0" ?>
<!DOCTYPE coverage SYSTEM 'http://cobertura.sourceforge.net/xml/coverage-03.dtd'>
<coverage branch-rate="0.0" line-rate="0.0" timestamp="1364322914" version="gcovr 2.5-prerelease (r2774)">
<sources>
<source>
/Users/Shared/Jenkins/Home/jobs/CodeCoverage/workspace/Project/myProject/
</source>
</sources>
<packages/>
</coverage>
其他信息:
如果我删除 --object-directory 和 -r 然后我从派生数据目录执行命令,则会生成有效报告。该报告可以从 cobertura 读取,但不能显示有关源文件的任何详细信息。
【问题讨论】:
-
我实际上是因为使用 gcovr 而辞职的。我正在使用一组 shell 脚本来生成 XML。首先我运行 gcov,然后我排除了特殊 cmets 之间的一些行(我正在使用 CoverStory),然后我从 gcov 输出的第一列生成 XML。其实很简单,你也可以直接在你的workspace里引用源文件,这样你就可以很方便的查看jenkins上文件的覆盖率了。
-
@Sulthan 您是否可以共享您的脚本?我无法让 gcovr 处理 Xcode 5 生成的文件,我正在寻找不同的解决方案。谢谢!
标签: objective-c jenkins code-coverage cobertura gcovr