我同意很多人多次提出这个问题,并且已经提供了许多解决方案。然而,在参考了无数链接之后,无法在 Sonar 中显示 Emma 报告让我发疯了。下面是对我正在尝试做的事情的描述。
我的 java 项目是一个多模块 maven 项目。我们使用 EMMA 作为代码覆盖工具,使用 Jenkins 构建项目,Sonar 分析代码并使用 Jenkins 声纳插件为我们的构建作业配置 Sonar。到目前为止,这个故事很棒。当我尝试在声纳分析期间重用 Emma 生成的报告时,问题就出现了。在构建过程中,Sonar 分析日志中没有明显的错误,但是,在 Sonar 项目仪表板中,覆盖率报告为 0%。以下是我在 Jenkins 构建作业的声纳配置部分提供的配置数据。
-Dsonar.core.codeCoveragePlugin=emma
-Dsonar.emma.reportPath=/target
-Dsonar.dynamicAnalysis=reuseReports
-Dsonar.surefire.reportsPath=/target/surefire-reports
声纳版本:3.0
艾玛插件版本:
emma-maven-plugin : 1.0-alpha-2
Sonar Emma Plugin :1.0.1
emma : 2.0.5312
Maven 构建在各个模块的目标文件夹中生成 coverage.em 文件。不生成coverage.ec 文件。声纳必须同时拥有coverage.ec 和coverage.em 文件吗?
在项目构建目录/emma文件夹下生成coverage.es,html,txt,xml文件
模块的声纳分析日志如下所示。
[INFO] [15:06:02.829] Sensor org.sonar.plugins.emma.EmmaSensor@bfc33...
[WARN] [15:06:02.844] Resource will be ignored in next Sonar versions, index is locked: com.mycompany.mypackage.tests.util.Activator
[INFO] [15:06:02.876] Sensor org.sonar.plugins.emma.EmmaSensor@bfc33 done: 47 ms
上面的日志让我觉得 Sonar 确实在使用生成的 Emma 报告做一些事情,但没有在 Sonar 项目仪表板上显示任何内容。
请让我知道我可能在哪里出错或需要做哪些额外的事情才能使其正常工作。