0

我正在将 SonarQube 集成到我们的构建系统中——我在我们的构建代理上安装了 sonar-runner-2.4,并为每个解决方案添加了 sonar-runner.properties(到 TFS 上的解决方案文件夹中)。运行构建时,我在构建代理上编译解决方案后执行声纳运行器。除了单元测试之外,一切似乎都有效:

在构建日志中,我看到近 200 个测试运行并成功完成,在 sonar-runner 日志中,我看到以下内容:

14:23:29.808 INFO  - 583/583 source files analyzed  
14:23:30.809 INFO  - Sensor org.sonar.plugins.csharp.squid.CSharpSquidSensor@1a50b87 done: 14937 ms  
14:23:30.809 INFO  - Sensor org.sonar.plugins.csharp.core.CSharpUnitTestResultsProvider$CSharpUnitTestResultsImportSensor@97edbc...  
14:23:30.821 INFO  - Sensor org.sonar.plugins.csharp.core.CSharpUnitTestResultsProvider$CSharpUnitTestResultsImportSensor@97edbc done: 12 ms

我猜这看起来不错,但是当登录到声纳服务器时,它显示运行了 0 个测试。

在 sonar-runner.properties 文件中,我将以下值设置为

sonar.cs.vstest.reportsPaths:
sonar.cs.vstest.reportsPaths=TestResults/*.trx

在这种情况下,当构建代理上的以下本地路径中有 3 个 vstest trx 文件时:`

D:\sTFS\22965\Sources\TestResults

`(见附件TestResults.jpg)。附件是 sonar-runner.properties 文件。我还附上了来自 sonarqube 服务器的屏幕截图(请参阅随附的 SonarServer.jpg)。

你能告诉我可能是什么问题吗? 试验结果

声纳服务器

声纳-runner.properties

4

1 回答 1

0

您应该会看到一些消息,例如:

INFO - Parsing the Visual Studio Test Results file ...

对于正在解析的每个单元测试结果文件,请参阅VisualStudioTestResultsFileParser.java#L34

您可以尝试将绝对路径模式传递给sonar.cs.vstest.reportsPaths吗?我的猜测是问题来自相对路径。

顺便说一句,使用 sonar-runner 分析 .NET 项目已被弃用。您会想看看 MSBuild SonarQube Runner,它提供了与 Team Foundation Server 的非常好的集成。请参阅 SonarSource 的 Wiki 上的新 C# 插件文档:http: //docs.sonarqube.org/display/PLUG/C%23+Plugin

编辑

我刚刚从您的日志中注意到包名称org.sonar.plugins.csharp.core.CSharpUnitTestResultsProvider.core.仅存在于过时的 C# 插件版本中(在 3.x 系列中),并且这些版本可能不支持报告路径中的通配符。请升级到最新版本。

于 2015-09-08T06:07:00.730 回答