【发布时间】:2014-07-10 16:06:16
【问题描述】:
我们有 SonarQube v3.4,最近升级到了 SonarQube V4.3。我们还使用 Jenkins 构建和触发 Maven 项目的声纳分析,并使用 Cobertura 作为代码覆盖工具。
在 3.4 版本中,Sonar 用于触发(使用 Jenkins)cobertura 执行并收集数据,但是当我们升级到 Sonar 4.3 时,Sonar 中没有选项可以选择默认的代码覆盖工具 Jenkins Sonar执行不再触发 cobertura 和单元测试执行。现在它需要一个 Jacoco 转储文件,以便向声纳提供覆盖数据。
我在 Sonarqube confluence 中找不到任何有用的文档。
我们如何配置 Sonar 以使用 Cobertura(不修改所有项目的 pom 文件)并从 Jenkins 触发代码覆盖单元测试执行?
谢谢!
【问题讨论】:
-
现在执行 Sonar 的推荐方法似乎是重用生成的覆盖率报告,但在任何地方都找不到该信息。更令人沮丧的是,重用来自 Cobertura 的报告会引发 Jacoco! 的异常。没有可见的方法来禁用 Jacoco,它不断抛出 org.sonar.api.utils.SonarException: Can not add two same measure on ...
-
我对 Jacoco 也有同样的问题。我的解决方案是简单地从插件文件夹中删除 jacoco jar,这会禁用 Jacoco。
-
@StevenPessall 此解决方法可行,但真正的解决方案是我在下面的答案中提供的解决方案。
标签: unit-testing maven jenkins code-coverage sonarqube