在SonarQube中显示0%的覆盖率(与.Net项目的Teamcity集成)

时间:2018-10-26 11:46:45

标签: sonarqube teamcity devops dotcover

我已经按照以下步骤配置了构建步骤

  1. 创建了另一个构建配置(例如,名为“发送到SonarQube”),并添加了对初始配置的依赖性

    “。teamcity / .NETCoverage / dotCover.dcvr”文件的工件依赖项,并从“从同一链构建”获得工件。

  2. 在新配置(“发送到SonarQube”)中,使用以下脚本添加了一个命令行步骤:

    %teamcity.dotCover.home%\ dotCover.exe报告/ ReportType = HTML /Source="dotCover.dcvr“ /Output="dotCover.html”

  3. 将SonarQube Runner添加到新配置中,并使用“ -Dsonar.cs.dotcover.reportsPaths = dotCover.html”添加其他命令行参数

请建议

注意::当我检查dotCover.html时,覆盖范围显示得很完美。 但是声纳显示为0%被覆盖

1 个答案:

答案 0 :(得分:0)

由于使用的是构建链,因此您可能正在切换目录,SonarQube使用绝对路径。要确认这一点,请查看工作目录中的html / [nnn] .html文件。在html-> head-> title中,运行report命令时,绝对路径是否与当前工作目录中的源代码匹配?

总而言之,在“发送到SonarQube”中,您需要确保:

  1. 您的源代码位于工作目录中
  2. 您的每个[nnn] .html文件的标题都具有与您的工作目录中的源代码相匹配的绝对路径。

有几种方法可以确保#2:

方法1

  • 告诉TeamCity在同一代理上运行所有快照依赖项。
  • 确保您的VCS设置完全相同。 (对于我自己,我已经在“ Send To SonarQube”中排除了一些文件夹,这导致了另一个工作目录)

方法2

  • 覆盖VCS设置中的Checkout目录,以使构建链中的所有内容都指向同一绝对目录。
  • (我还没有尝试过,但是由于代理名称不在目录路径中,因此它应该可以跨代理使用)