Sonar与Gallio和Opencover,代码覆盖率为0%。

3
我正在使用带有Gallio的Sonar和OpenCover,尽管存在测试类,但它给出了0%的代码覆盖率,并且我的机器需要大约15秒来尝试运行测试(至少看起来是这样),之后它们与该行相加:0 run, 0 passed, 0 failed, 0 inconclusive, 0 skipped
因此,我在互联网/stackoverflow上查找,发现这可能与代码在另一台机器上编译有关。由于这也是本例的情况,因此我在Visual Studio中打开了解决方案,构建了它,并可以看到重新创建了我的PDB文件。之后我再次尝试使用opencover的sonar。
但没有帮助。
我将OpenCover调用的代码行从管理员控制台中取出,转到OpenCover目录并执行相同的行,而不使用过滤器,因为我的coverage-report.xml告诉我测试模块被skippedDueTo="Filter"跳过。之后它们不再被跳过。
仍然是0%的测试覆盖率。
我使用regsvr32 OpenCover.Profiler.dll在相同的管理员控制台中注册了OpenCover分析器库(并尝试了两次,因为我在Windows 7上,但使用的是32位sonar)。
没有帮助。
我尝试了添加-oldStyle参数的相同行
也没有帮助。
现在我感觉没有其他选择了...
我在管理员控制台中尝试的最新调用:
C:\Program Files\OpenCover>OpenCover.Console.exe -register:user -target:"C:\Program Files\Gallio\bin\Gallio.Echo.exe" -targetdir:D:\projecten\udbdrm\source\CDP\CDPBackoffice\Develop\CDPBackoffice.root\CDPBackoffice\.sonar "-targetargs:\"/r:IsolatedAppDomain\" \"/report-directory:D:\projecten\udbdrm\source\CDP\CDPBackoffice\Develop\CDPBackoffice.root\CDPBackoffice\.sonar\" \"/report-name-format:gallio-report\" \"/report-type:Xml\" \"D:\projecten\udbdrm\source\CDP\CDPBackoffice\Develop\CDPBackoffice.root\CDPBackoffice\CDPBackoffice.BusinessLogic.Tests\bin\Debug\CDPBackoffice.BusinessLogic.Tests.dll\" \"D:\projecten\udbdrm\source\CDP\CDPBackoffice\Develop\CDPBackoffice.root\CDPBackoffice\CDPBackoffice.Utility.Tests\bin\Debug\CDPBackoffice.Utility.Tests.dll\" \"D:\projecten\udbdrm\source\CDP\CDPBackoffice\Develop\CDPBackoffice.root\CDPBackoffice\CDPBackoffice.DataAccessLayer.Tests\bin\Debug\CDPBackoffice.DataAccessLayer.Tests.dll\"" -mergebyhash -output:D:\projecten\udbdrm\source\CDP\CDPBackoffice\Develop\CDPBackoffice.root\CDPBackoffice\.sonar\coverage-report.xml -oldStyle

这个解决方案确实有几个测试类,当在 Visual Studio 中执行它们时,它们会调用源代码中的类,其中一些测试会失败,而另一些则会成功。

还有谁知道如何获取测试结果吗?最好是在 Sonar 中,但是如果使用上面的命令执行 OpenCover 并将结果放入 coverage-report.xml 文件中,Sonar 将使用它作为输入,那么我也可以接受一个可行的调用方法 ...

1个回答

5
显然,我只需要在sonar-project.properties文件中添加这一行: sonar.gallio.runner=IsolatedProcess

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接