主要问题是以下属性
[警告]未收集覆盖范围信息。也许您忘记在编译的类中包含调试信息?
我相信这与属性sonar.java.binaries有关,该属性用于查找片段项目(client.admin.project)的目标/类中的源,这些源实际上位于宿主项目(client.admin)中。在片段项目中,我们配置了sonar.tests和sonar.sources属性,以便它们调用相应项目的/src文件夹。
在sonar Analysis Parameters页面中,只有sonar.sources是maven的有效属性,sonar.tests和sonar.java.binaries显然不能在maven中配置。那么我如何将二进制文件附加到项目中。我尝试从宿主项目复制文件夹target/classes,但得到了相同的消息。maven中有什么变通方法吗?
<!-- Jacoco Plugin -->
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<executions>
<execution>
<id>prepare-agent</id>
<goals>
<goal>prepare-agent</goal>
</goals>
<configuration>
<destFile>${sonar.jacoco.reportPath}</destFile>
<append>true</append>
</configuration>
</execution>
<execution>
<id>default-report</id>
<goals>
<goal>report</goal>
</goals>
<configuration>
<dataFile>${sonar.jacoco.reportPath}</dataFile>
<outputDirectory>${jacoco.reports.outputDirectory}</outputDirectory>
</configuration>
</execution>
</executions>
</plugin>
<sonar.language>java</sonar.language>
<sonar.core.codeCoveragePlugin>jacoco</sonar.core.codeCoveragePlugin>
<sonar.junit.reportsPath>${project.build.directory}/surefire-reports/</sonar.junit.reportsPath>
<sonar.jacoco.reportPath>${basedir}/../../../main/**.master/target/jacoco.exec</sonar.jacoco.reportPath>
<jacoco.reports.outputDirectory>${basedir}/../../../main/**.master/target/site/jacoco</jacoco.reports.outputDirectory>
<sonar.sources>src</sonar.sources>
在测试项目(eclipse-test-plugin)中,我们更改了sonar.sources属性,以便从我们正在测试的项目的src文件夹中查找源代码,例如在client.admin.test.fragment中,我们从client.admin中搜索src
以下属性是在代码中注释的,因为根据文档和调试输出,maven不支持这些属性。
<!--<sonar.dynamicAnalysis>reuseReports</sonar.dynamicAnalysis>-->
<!--<sonar.tests></sonar.tests>-->
<!--<sonar.java.binaries></sonar.java.binaries>-->
首先,您必须告诉JaCoCo代理将所有覆盖数据报告到一个公共文件中。其次,您告诉Sonar JaCoCo插件从聚合文件中读取覆盖数据。
为此,将父pom.xml中的属性“jacoco.destfile”和“sonar.jacoco.reportpath”设置为相同的绝对路径,例如:
<properties>
<jacoco.destFile>/home/jenkins/jobs/my.project/workspace/parent/target/jacoco.exec</jacoco.destFile>
<sonar.jacoco.reportPath>/home/jenkins/jobs/my.project/workspace/parent/target/jacoco.exec</sonar.jacoco.reportPath>
</properties>
注意,这些属性将被继承到所有子POM,因此您不能使用像${project.build.directory}这样的Maven表达式,因为这将为每个POM计算不同的目录。
我有一个基本的maven多模块,父模块是POM,其子模块是domain、service和Web。 我已经在pom父级中添加了jacoco插件和所需的配置,以便将测试覆盖率报告附加到一个Sonar很容易找到的文件中。 我的问题是,Sonar只显示第一个模块的测试覆盖范围(是domain)(即使我用编辑器打开文件,看到其他模块的类名被追加在其中)。 这种配置会有什么问题? 为了它的价值,声纳分析被称为
我有下面的多maven模块应用程序,我遵循了下面的步骤https://github.com/jacoco/jacoco/wiki/MavenMultiModule在测试模块中生成一份综合的jacoco单元测试覆盖率报告。然而,我们有一个政策来执行80%的最低总覆盖率,否则构建失败。这在单模块应用中非常有效。然而,我无法在多模块应用程序的总体覆盖范围内实施这一点。如有任何建议,将不胜感激。 我试图为
我正试图在詹金斯的sonarqube仪表板上获取代码覆盖率报告。代码覆盖率报告即将发布,但仅显示4.6%的覆盖率。经过调查,我发现使用PowerMock编写的测试类被跳过了。 经过进一步调查,我发现“JaCoCo不能很好地处理动态修改/创建的类(这就是powermock的工作方式)。这是一个已知的限制,我们目前对此无能为力”。 是否有任何解决办法,以便我也可以为使用PowerMock编写的测试类获
我正在使用Ant在RHEL6机器上运行Sonar Java代码分析。对于集成测试分析,我使用JaCoCo sonar插件。我的库类路径中有插件。当我运行Selenium测试时,会生成一个“jacoco.exec”文件(10个测试大约1MB)。然后在我的Sonar Ant目标中激活Jacoco插件,并将其导入Sonar。声纳分析日志显示,已对Jacoco文件进行了分析(耗时约5000毫秒)。然而,我
问题内容: 似乎有几个问题,这些问题已经很老了,并且从Java 8对Jacoco的支持开始发生了变化。 我的项目包含以下结构 我已经配置了这样的 主POM.xml Pom.xml B pom.xml 我正在执行此命令。我可以看到jacoco.exec正在生成,但是我看不到任何HTML报告正在验证数据。 请帮我解决一下这个。还有一点是,我的配置对项目是否正确? 更新资料 已确定的问题。 变成 现在,
我正在使用: 声纳v.3.2(有jacoco) Maven 3.0.4 跟随”http://johndobie.blogspot.in/2012/05/easy-unit-and-integration-code-coverage.html#comment-表格“以获得单元的单独代码覆盖率 日志显示如下: POM文件: