【问题标题】:Bamboo + sonar.dynamicAnalysis=reuseReports = 0% Rules ComplianceBamboo + sonar.dynamicAnalysis=reuseReports = 0% 规则合规性
【发布时间】:2011-11-10 14:42:13
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: java sonarqube bamboo


    【解决方案1】:

    经过多次尝试和错误,我终于能够让 Sonar、Jacoco 和 Bamboo 和谐地一起工作。我记录了该过程 here!,但我将在此处复制我的解决方案以确保它始终可用。

    对于我的应用程序,我实际上使用了声纳亚军任务。您有更明确的步骤来安装和配置 sonar-runner,安装指南中没有提到。首先,您必须安装 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 覆盖添加到您的 ant 构建脚本中:

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

    最后,您需要告诉来自竹子的声纳使用 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 属性以重用它们从您的单元测试中生成的报告。否则,即使您告诉声纳重复使用报告,声纳也不知道在哪里找到它们。希望对您下次尝试有所帮助。

    【讨论】:

    • +1 - 感谢详细的文章,非常感谢像这样棘手的集成问题!
    • 已经有一段时间没有搞砸了,根据其他人的支持和明确的回答,将其标记为已接受的答案。
    【解决方案2】:

    请转到以下

    LinkLink 2

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-04-01
      • 1970-01-01
      • 2022-12-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多