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

2024-02-04

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

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

根据之前未使用该指令的修改,规则合规性得分较高。因此很明显,使用该指令会在某种程度上阻止计算该指标。

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


经过多次尝试和错误,我终于能够让 Sonar、Jacoco 和 Bamboo 和谐地一起工作。我记录了这个过程here http://docs.marvelution.com/display/BAMSON/Documentation+Home?focusedCommentId=15171631comment-15171631!,但我将在此处复制我的解决方案以确保它始终可用。

对于我的应用程序,我实际上使用了声纳运行器任务。您有更明确的步骤来安装和配置声纳运行器,安装指南中未提及。首先,您必须安装 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

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

<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}">
    ...

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Bamboo + sonar.dynamicAnalysis=reuseReports = 0% 规则合规性 的相关文章

随机推荐

  • delphi中如何分割字符串

    我只需要分割一个字符串 例如 STANS Payment chk 1 1210 000进入一个基于数组 字符串列表中的结果将是 STANS Payment chk 1 1210 000 创建一个TStringList并将逗号分隔的字符串分配
  • 从订单示例构建订单簿[关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 我正在寻找从订单构造订单簿的代码 例如 如果订单是 side price quantity buy 100 1 buy 101 10 buy
  • gcc中有128位整数吗?

    我想要一个 128 位整数 因为我想存储两个 64 位数字相乘的结果 gcc 4 4及以上版本有这样的东西吗 对于 C23 之前的 GCC 原始 128 位整数类型是仅在 64 位目标上可用 因此即使您已经检测到最新的 GCC 版本 您也需
  • 在事件处理程序中调用自定义挂钩

    我有一个名为的自定义钩子useFetchMyApi将 fetch 调用包装到 API 端点 函数钩子接受一个参数 并将其包含在帖子正文中 数据数组输出取决于钩子参数 在UI上 App组件调用useFetchMyApi一次 按钮单击处理程序将
  • 包含相同对象列表的对象的实体框架映射

    目前在我的代码中我正在做这样的事情 public class Subject private List
  • FLOPS 什么是真正的 FLOPS

    我来自这个线程 FLOPS Intel 核心并使用 C 语言对其进行测试 内积 https stackoverflow com questions 1536867 flops intel core and testing it with c
  • 将多个 div 与父级底部对齐

    我想将父级底部的 3 个 div 与100 height I tried parent height 100 display table cell vertical align bottom 但不起作用 即使您更改窗口的大小或分辨率 它也应
  • Android Studio Canary 2020.3.1:Kotlin 未解析的引用

    将 Android Studio Canary 版本更新到 3 1 后 我开始收到属于 kotlin 标准库的函数的 Kotlin 未解析引用 并且该问题似乎也影响了 Android Studio 导入正确库的能力 我相信我的问题类似于th
  • 为什么 null 不 in(1,2,3) false [重复]

    这个问题在这里已经有答案了 是否期望当我测试空值时not在列表中 结果始终为 false 那是 select Hello world where null not in 1 2 3 不要选择任何内容 因为 null not in 1 2 3
  • pycrypto 和 Google 应用引擎

    如何将 pycrypto 与 GAP 结合使用 It says here https developers google com appengine docs python tools libraries它不支持最新版本 这是否意味着我必须
  • 如何将值从子功能组件传递到父类组件?

    我有一个父类组件和一个子功能组件 我们如何将值从这种类型的子组件传递到父组件 我见过一些将值从子类组件传递到父类组件的示例 父组件 import React from react import ChildComponent from Chi
  • Heroku 上的 Resque 后台作业

    我在 Heroku 上遇到了一个非常奇怪的问题 我已经花了一段时间来解决这个问题 我的应用程序有一些外部 API 调用和邮件程序 我已将它们设置为在后台运行 ActiveJob 在 Heroku 上 我设置了两个工作人员 并且我正在使用 R
  • 如何在 Eclipse 中格式化 html 文件?

    XML 格式工作得很好 但 html 格式却不行 事实上 如果我对 html 文件使用 cmd shift F 它几乎会左对齐所有内容 我附上了之前和之后的照片 有谁知道如何解决这一问题 我尝试了 HTML 格式首选项 但没有成功 请注意
  • Maxima 中 Maple“unapply”或 Mathematica“Function”的模拟

    在 Wolfram Mathematica 中 我们可以定义作用于函数 即返回函数的函数 的运算符 例如至于下面示例中作用于两个参数的函数的第一个参数的乘法运算符 X f Function x y x f x y 然后我们可以将此运算符应用
  • 给定一个CGPath,如何让它弯曲?

    在下面的屏幕截图中 当您拖动单词气球的尾部 从气球连接到人的嘴的东西 时 形状会弯曲 如图中两个气球尾部之间的差异所示 我想知道 这是怎么做到的 我假设您需要从 CGPath 开始并对它做一些事情 有人知道这是什么吗 更新 所以如果我想弯曲
  • 同时读取子进程的 stdout 和 stderr

    我正在尝试在 Python 中运行一个冗长的命令 输出到 stdout 和 stderr 我想轮询子进程并将输出写入单独的文件 根据这个答案 我尝试了以下操作python 中 subprocess PIPE 的非阻塞读取 https sta
  • 来自命令行的 R 脚本

    我想运行这个示例脚本 http mazamascience com WorkingWithData p 912 http mazamascience com WorkingWithData p 912从 Windows 命令行 所以我打开命
  • 以编程方式启用/禁用实体代理

    我在新项目中使用 Entity Framework 4 1 和 POCO 实体 一切都工作正常 直到我开始使用 AppFabric 缓存来缓存实体 我开始从与反序列化代理对象相关的缓存中检索实体时出现错误 我通过设置 ContextOpti
  • 无法消除绘图的一像素宽的白色边距(底部和右侧)

    我正在尝试使用绘制并保存我的矩阵image 没有轴 标签 边距等 我需要的只是纯彩色图像 其中单元格数量将对应于保存的绘图上的像素数量 在 R 图形设备上 它看起来不错 但如果我将绘图保存到文件中 则图像的底部和右侧始终会保留一像素宽的白色
  • Bamboo + sonar.dynamicAnalysis=reuseReports = 0% 规则合规性

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