加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – Bamboo sonar.dynamicAnalysis = reuseReports = 0%规

发布时间:2020-12-15 08:45:01 所属栏目:Java 来源:网络整理
导读:Bamboo可用于连续构建,但希望使用Sonar进行质量指标跟踪.必须在Bamboo中捕获单元测试通过/失败和Clover代码覆盖率指标.但是,这些相同的值也应该发送到Sonar,以便不通过运行单元测试和Clover两次来增加构建持续时间. 已经能够使用maven构建的“sonar.dynamicA
Bamboo可用于连续构建,但希望使用Sonar进行质量指标跟踪.必须在Bamboo中捕获单元测试通过/失败和Clover代码覆盖率指标.但是,这些相同的值也应该发送到Sonar,以便不通过运行单元测试和Clover两次来增加构建持续时间.

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

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

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

解决方法

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

对于我的应用程序,我实际上使用了声纳转轮任务.您有更明确的步骤来安装和配置声纳流道,这在安装指南中没有提到.首先,您必须安装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:

<project basedir="." default="build" name="project" xmlns:jacoco="antlib:org.jacoco.ant">
    <property environment="env" />

    <taskdef uri="antlib:org.jacoco.ant" resource="org/jacoco/ant/antlib.xml">
       <classpath path="libs/independent/jacocoant.jar"/>
    </taskdef>

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

<jacoco:coverage enabled="${tests.code.coverage}" destfile="${jacoco.exec.dest}">
    <junit fork="yes" printsummary="withOutAndErr" dir="${tests.working.dir}">
    ...

最后,你需要告诉sonar,使用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属性以重用从单元测试生成的报告.否则,即使您告诉它重复使用报告,声纳也不会知道在哪里找到它们.希望有助于您的下一次尝试.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读