使用Gallio和OpenCover覆盖率 - 报告文件包含结果,但Sonar报告0%

时间:2012-10-25 14:04:14

标签: jenkins sonarqube opencover

我遇到的问题是,由于某些原因,代码覆盖范围未在Sonar中显示。 执行单元测试的结果并正确显示,但不是代码覆盖的结果。该项目由詹金斯建立。我已按照某些线程中的建议注册了opencover.profiler.dll文件,但仍然没有结果。在执行构建时,我都没有在Jenkins中收到任何错误消息。

我会非常感谢有关该怎么做的任何提示。

最好的问候丹

3 个答案:

答案 0 :(得分:2)

我认为这是因为您的Jenkins服务作为“本地系统帐户”运行,但Sonar正在使用-register:user开关运行OpenCover。您应该可以通过将Jenkins服务作为常规用户帐户运行来绕过此操作,或者修补Sonar-runner以省略-register:user开关。

答案 1 :(得分:0)

但事实证明,PDB文件导致了这些问题。它们被包含在存储库中,并且由于某种原因不能通过Jenkins中的构建重新创建。因此,PDB文件包含了实际代码文件的错误路径。

感谢您的帮助!

答案 2 :(得分:0)

检查OpenCover与Gallio插件之间的版本冲突。

我发现更高版本的OPenCover(从版本4.0.1229开始)在coverage-report.xml文件中插入了一个新标记--Gallio插件无法理解。当我回滚到旧版本的OpenCover(4.0.804)时,覆盖范围再次起作用。 您可以在http://sonar.15.n6.nabble.com/coverage-report-xml-is-generated-but-sonar-says-coverage-is-0-td5008850.html

上找到更多详细信息

看起来Gallio插件已经更新,但我还没有追求(想要首先确认这是导致问题的原因)。