【问题标题】:C# unit test results in SonarQube 5.6SonarQube 5.6 中的 C# 单元测试结果
【发布时间】:2016-10-25 19:15:45
【问题描述】:

环境:SonarQube 5.6 - SonarQube Runner 2.4 - MSBuild.SonarQube.Runner-2.0 - TFS 2015 - C#6

我有一个带有 C# 6 项目和单元测试的 Visual Studio 2015 解决方案。在我的 TFS 2015 服务器上,我定义了一个构建(基于任务,而不是 xaml)。在我的构建中,我添加了以下步骤: - 用于 MSBuild 的 SonarQube - 开始分析。 - Visual Studio 测试 - 用于 MSBuild 的 SonarQube - 结束分析。

一切运行良好(构建、单元测试执行、代码覆盖率、基于 SonarLint 的分析结果……除了我没有在 Sonar 报告中看到测试结果(代码覆盖率在那里!)。

我尝试添加一些参数: - 开始分析:我添加了:/d:sonar.cs.vstest.reportsPaths=../TestResults/*.trx - vstests 控制台:/Logger:trx

在最终分析日志中,我看到了这个:

正在尝试查找测试结果 (.trx) 文件... 找到一个测试结果文件:E:\agent_work\3\TestResults\tests_results_2016-06-23 14_07_22.trx 传感器 org.sonar.plugins.csharp.CSharpUnitTestResultsProvider$CSharpUnitTestResultsImportSensor 传感器 org.sonar.plugins.csharp.CSharpUnitTestResultsProvider$CSharpUnitTestResultsImportSensor (完成) |时间=0ms

知道为什么我在 Sonar 报告中总是看到 Unit tests=0 吗?

【问题讨论】:

    标签: unit-testing tfs msbuild sonarqube


    【解决方案1】:

    您需要提供 .trx 文件的完整路径。在开始分析中进行以下更改,然后重试。

    改变

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

    收件人

     /d:sonar.cs.vstest.reportsPaths=../TestResults/Mytest.trx 
    

    【讨论】:

    • 无法强制执行 TFS 测试运行器控制台的输出文件名。它包含日期结束时间。我添加了一个中间任务,将任何 trx 文件重命名为 testsresults.trx。我现在出现以下错误: 找到一个测试结果文件:E:\agent_work\3\TestResults\testresults.trx 后处理成功。 ##[error]Unexpected exit code received from batch file: 255 ##[warning]找不到摘要报告文件 E:\agent_work\3\.sonarqube\out\summary.md
    猜你喜欢
    • 2017-12-11
    • 2018-04-03
    • 2015-01-08
    • 2016-01-13
    • 2022-01-23
    • 2016-08-24
    • 2016-11-18
    • 2013-07-13
    • 2018-03-01
    相关资源
    最近更新 更多