Bamboo + sonar.dynamicAnalysis = reuseReports = 0%规则合规性

Bamboo可用于连续构建,但希望使用Sonar进行质量指标跟踪。 必须在Bamboo中捕获unit testing通过/失败和Clover代码覆盖率指标。 但是,这些相同的值也应该发送到Sonar,以便不通过运行unit testing和Clover两次来增加构建持续时间。

已经能够使用maven构建的“sonar.dynamicAnalysis = reuseReports”指令将这些指标从Bamboo构建发送到Sonar。 但Sonar的“规则合规性”指标为0%。

根据之前的修改而不使用指令,规则合规性得分更高。 所以很明显使用该指令会以某种方式阻止计算该指标。

有谁知道如何使用此指令并获得规则合规性分数? 或者他们可以指出要帮助诊断的东西吗? 使用“-e”选项运行maven并没有提供任何特别有用的东西。

经过多次尝试和错误后,我终于能够让Sonar,Jacoco和Bamboo和谐共处。 我在这里记录了这个过程!但是我会在这里复制我的解决方案以确保它始终可用。

对于我的应用程序,我实际上使用了声纳转轮任务。 您有更明确的步骤来安装和配置声纳运行器,这在安装指南中没有提到。 首先,您必须安装sonar-runner并在sonar-runner.properties中指定以下属性:

#----- Default Sonar server sonar.host.url=http://localhost:9000 #sonar.jdbc.url=jdbc:postgresql://localhost/sonar #sonar.jdbc.driver=org.postgresql.Driver #----- Global database settings sonar.jdbc.username=user sonar.jdbc.password=passwd 

在顶部的ant构建脚本中包含jacoco xmlns:

      

接下来,您必须将jacoco coverage添加到您的ant构建脚本:

   ... 

最后,你需要告诉使用竹子的声纳来使用jacoco结果并重用你构建中生成的报告。 您可以通过在Bamboo作业中的声纳分析的任务配置中将以下属性添加到“自定义额外参数”来完成此操作。 配置以下选项:

 -DbuildNumber=${bamboo.buildNumber} -Dsonar.core.codeCoveragePlugin=jacoco -Dsonar.jacoco.reportPath=tests/jacoco-exec/jacoco.exec -Dsonar.dynamicAnalysis=reuseReports -Dsonar.surefire.reportsPath=tests/test-reports 

一旦我完成了所有这些配置,我的测试覆盖率就开始出现在声纳中,并列出了成功的测试。

请确保设置sunfire属性以重用从unit testing生成的报告。 否则,即使您告诉它重复使用报告,声纳也不会知道在哪里找到它们。 希望有助于您的下一次尝试。

请转到以下内容

链接和链接2