【问题标题】:SonarQube server shows zero unit testsSonarQube 服务器显示零单元测试
【发布时间】:2015-12-03 03:07:14
【问题描述】:

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

在构建日志中,我看到近 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)。

你能告诉我可能是什么问题吗?

【问题讨论】:

    标签: sonarqube sonar-runner vstest


    【解决方案1】:

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

    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 系列中)中,并且这些版本可能不支持报告路径中的通配符。请升级到最新版本。

    【讨论】:

    • 我看不到像您写的那样的消息。我试图给出一个绝对路径,但仍然没有改变。我注意到我收到以下警告:“警告 - SCM 提供程序自动检测失败。没有 SCM 提供程序声称支持此项目。请使用 sonar.scm.provider 定义项目的 SCM”。这和单元测试有关系吗?
    • 不,这与单元测试结果完全无关。您能否尝试一个简单的场景,按照docs.sonarqube.org/display/PLUG/… 中记录的步骤操作?
    • 看来您使用的是过时的 C# 插件 3.x - 我已经编辑了我的答案
    • 我更新了 C# 插件并按照您的建议使用了 MSBuild SonarQube Runner。现在只有一个问题,我收到如下错误:错误:原因:'A56FD28C-5687-44E2-8D11-8CB1CE43472A' 的文件夹'example' 不存在(基本目录 = D:\sTFS\ 27170\Sources\NDM\TestingTools\XmlUtilsTests)。
    • 我尝试手动添加一个具有此名称的空文件夹,它解决了问题。有什么我可以添加到 SonarQube.Analysis.xml 或作为命令行的参数来忽略这个丢失的文件夹的吗?我在这里看到了一些关于 java 的答案:link
    猜你喜欢
    • 2016-10-27
    • 2015-05-06
    • 1970-01-01
    • 2017-11-07
    • 2017-12-11
    • 2016-04-19
    • 2018-11-08
    • 2020-10-13
    • 2016-08-24
    相关资源
    最近更新 更多