【问题标题】:Sonar Runner not picking up the report xml file in TeamCitySonar Runner 未在 TeamCity 中获取报告 xml 文件
【发布时间】:2016-10-16 21:01:17
【问题描述】:

Sonar Runner step我们正在尝试为 TeamCity 中的一个项目(模块)设置声纳。我们有以下构建步骤: 1) Nuget 安装 2)Visual Studio sln 3) 检查(.Net) 4) 声纳亚军

在 Sonar Runner 步骤中,它无法获取该文件。参见图 2 unable to find that xml file

请帮我指出如何让它选择 xml 文件的正确方向。

【问题讨论】:

  • 您能否显示从启动 SQR 开始的步骤的完整日志?很高兴看到它在错误之前将值初始化为什么,例如-Djava.io.tmpdir=C:\Data\TeamCityAgent01\temp\buildTmp,但所有这些都有助于尝试诊断此问题。运行器是否使用默认的 JDK 路径?
  • 它使用默认的 jdk 路径。我已经在我的帖子中包含了声纳跑步者步骤日志(描述:声纳跑步者步骤)

标签: teamcity sonar-runner


【解决方案1】:

这里的主要技巧是将报告 XML 传递给 SonarQube 运行器 - 可以使用 /output resharper 选项完成(参见下面的步骤 #2)。虽然还有一些事情可能会毁了你的一天,所以我编写了一个完整的程序。

  1. 首先确保正确配置 SonarQube 服务器以接受 Resharper 数据。您需要安装 Resharper 和 C# 插件,并使用 Resharper 规则配置质量配置文件。要检查配置,我建议按照Resharper plugin documentation 中的说明手动运行分析。

  2. 然后配置您的 Inspections(.Net) TeamCity 构建步骤以在众所周知的位置创建报告 XML:打开高级选项并在字段“其他 inspectCode.exe 参数:”中添加 /output=%system.teamcity.build.tempDir%\inspectReport.xml(或任何别的地方)。 重要提示!该步骤将失败,因为它希望报告位于默认位置(请参阅issue on YouTrack)。所有后续步骤都需要Execute step: if some of the previous steps failed 选项才能运行

  3. 在 SonarQube Runner 步骤中打开高级选项并在“附加参数:”字段中添加这 2 行(将 pathToSolutionFile 替换为真实路径):

    -Dsonar.resharper.cs.reportPath=%system.teamcity.build.tempDir%\inspectReport.xml
    -Dsonar.resharper.solutionFile=pathToSolutionFile
    
  4. 最后在 TeamCity UI 中查看检查报告,并添加一个新的命令行构建步骤:

    echo "##teamcity[importData path='%system.teamcity.build.tempDir%\inspect.xml' type='ReSharperInspectCode']"
    

【讨论】:

  • 你好 linfar....谢谢你的回复,它成功了。现在我有一个新问题,我们最近升级到 TeamCity 10,我又在这里发现了同样的问题....我复制了所有内容,但没有用....你能帮帮我吗
  • 确保您已将插件更新为latest version。第二 - 我提到的问题已经解决,所以现在不需要第 4 步和Execute step: if some of the previous steps failed 选项。如果您仍有问题,我可以通过github 为您提供帮助
猜你喜欢
  • 1970-01-01
  • 2012-10-07
  • 2016-04-09
  • 2017-02-14
  • 1970-01-01
  • 2015-10-02
  • 2013-03-27
  • 2018-12-13
  • 2016-07-21
相关资源
最近更新 更多