Giu*_*ppe 5 code-coverage cobertura objective-c jenkins gcovr
我想用Cobertura设置我的Jenkins来跟踪代码覆盖率.不幸的是我无法生成有效的xml.
我正在使用:
我的项目正确生成代码覆盖文件,但使用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
Run Code Online (Sandbox Code Playgroud)
这将创建我的输出:
<?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>
Run Code Online (Sandbox Code Playgroud)
其他信息:
如果我删除--object-directory和-r然后我从派生数据目录执行命令,则会生成一个有效的报告.此报告可以从cobertura中读取,但不能显示有关源文件的任何详细信息.
当使用 XCode 时,我发现使用$WORKSPACE/build作为构建目录有助于解决这个问题。这会将派生数据目录排除在外,并且还将我的目标文件整齐地保留在构建目录中。它还可以防止两个构建相互干扰。
如果使用 Xcode 构建工具,请在工具的构建配置中设置SYMROOT为。$WORKSPACE/build如果您从命令行构建,请在命令行或环境中手动设置。
然后是 gcovr 脚本,例如:
/your/path/to/gcovr -r . --object-directory build/YourApp.build/Coverage-iphonesimulator/YourApp.build/Objects-normal/i386 --xml > build/coverage.xml
Run Code Online (Sandbox Code Playgroud)
(您的路径可能会略有不同,具体取决于您所谓的构建风格等)
最后在 Cobertura 配置中,指向build/coverage.xml,当您在 Jenkins 中使用该工具时,您应该会获得带注释的源代码。
应该做到这一点。我对我们小型 Mac Mini 农场的配置非常满意。
| 归档时间: |
|
| 查看次数: |
5760 次 |
| 最近记录: |