代码覆盖率在仪表板上显示为 0%
build.gradle文件
plugins {
id "org.sonarqube" version "2.8"
id "java"
id "idea"
id "jacoco"
}
jacoco {
toolVersion = "0.8.5"
}
jacocoTestReport {
reports {
html.enabled true
xml.enabled true
xml.destination file("${buildDir}/reports/jacoco.xml")
}
}
plugins.withType(JacocoPlugin) {
tasks["test"].finalizedBy 'jacocoTestReport'
}
sonarqube {
properties {
property "sonar.java.coveragePlugin", "jacoco"
property "sonar.host.url", "http://169.254.1.100:9000"
property "sonar.coverage.jacoco.xmlReportPath", "${buildDir}/reports/jacoco.xml"
}
}
repositories {
mavenCentral()
jcenter()
}
dependencies {
// https://mvnrepository.com/artifact/junit/junit
testCompile 'junit:junit:4.12'
}
check.dependsOn jacocoTestReport
运行此命令
./gradlew build jacocoTestReport sonarqube
JacocoTestReport使用正确的代码覆盖率生成
声纳曲渐变任务生成此日志
> Task :sonarqube
SonarScanner will require Java 11 to run starting in SonarQube 8.x
Property 'sonar.jacoco.reportPath' is no longer supported. Use JaCoCo's xml report and sonar-jacoco plugin.
Property 'sonar.jacoco.reportPaths' is no longer supported. Use JaCoCo's xml report and sonar-jacoco plugin.
在谷歌上搜索了半天,这个问题的唯一真正解决方案是:财产的sonar.jacoco。不推荐使用“报告路径”。请使用“声纳”jacoco。改为“报告路径”
此处的答案解释了双重输出:
Property 'sonar.jacoco.reportPaths' is no longer supported. Use JaCoCo's xml report and sonar-jacoco plugin.
但是,这似乎尚未添加到gradle插件中,因为正在使用的插件是2.8,这是发布时的最新版本。
我错过了什么吗?
为了扩展qasanov的回答,我必须将它添加到我的< code>build.gradle文件中,以便JaCoCo生成XML报告,然后SonarQube自动获取该报告:
jacocoTestReport {
reports {
xml.required = true
}
}
配置中的问题是属性名称的类型。它是声纳报道路径,而不是声纳报道路径
我没有使用渐变声纳插件,而是使用詹金·乔布斯的 -
默认情况下,Jacoco只生成html文件,对于SonarQube,我们需要xmlReportPath。
gradle 中的以下代码将启用 xml 报告,并将生成默认名称为 jacotestReport.xml jacotestReport { 报告 { xml.enabled true } }
这将在Jenkins工作区中的位置/ws/build/reports/jacoco/test/jacocoTestReport生成以下文件。xml以及/ws/build/reports/jacoco/html文件夹,其中包含覆盖率报告的所有html文件。可通过访问索引访问此报告。html文件位于/ws/build/reports/jacoco/html/index.xml
Jacoco xml报告文件的路径将在下面的属性中提供
sonar.coverage.jacoco.xmlReportPaths=<rootFolder>/build/reports/jacoco/test/jacocoTestReport.xml
这确实对我有用。
在此之前,在SonarQube中,我无法看到覆盖范围,在其他项目中,覆盖范围显示为0.0%。
因此,总之,SonarQube无法查看您的JaCoCo报告文件。
您必须启用 XML 报表属性作为 true。
启用真值
我正在尝试使用JaCoCo-javaagent传递VM参数来获得代码覆盖率 -Java agent:/test/jaco co/jaco agent . jar = dest file =/test/jaco co/jaco co . exec,includes=com。*,append=true 我能在jacoco中获得一些价值。执行文件,但无法获取覆盖率报告。我怎样才能把jacoco转化成。执
我的代码运行在具有单独JVM的单独虚拟机上。我想在此虚拟机上以tcpserver模式设置JaCoCo代理以收集覆盖率数据。然后,我将在我的maven项目中以tcpclient模式设置JaCoCo代理,以连接到上面提到的VM并获取覆盖率数据。 问题是代理不收集任何覆盖数据。在中创建了覆盖率数据文件,但该文件为空。 下面是代理选项:-Java agent:/usr/xx/plugins/org . j
我在声纳中的代码覆盖率显示为0%,这不是真的,因为我有单元测试。 格拉德尔 当我打开inside然后我可以看到成功的单元测试。 我在Jenkins环境中运行作为
我正在使用Android Studio 1.2。2和Gradle插件1.2。3. 我正在尝试生成代码覆盖率报告,而不运行,只运行。我希望避免需要连接设备或模拟器,这样我就可以加快Jenkins服务器上的构建速度。 到目前为止,我所能做的最好的事情就是在报告中包含单元测试执行数据,如下所述:Android Studio中的Jacoco代码覆盖。这对于显示所有测试的结果很有用,但是目前我只想运行单元测
我正在尝试生成Jacoco代码覆盖率报告。我已经将AndroidTestCase用于我的测试类。 在过去几天里,我已经关注了堆栈溢出的各种公认答案。结果是否定的。 我的分级文件:
我正在尝试集成Jacoco,以便使用Maven获得Cucumber测试的代码覆盖率。以下是我的项目结构: > -src主java页面 -src主java助手 -src-测试-java-资源-功能 -src测试java步骤 以下是我的POM中的Jacoco配置。xml 我能够生成代码覆盖率报告。但是,在报告中,它涵盖了-src主包中的所有类。根据不同的google搜索和SO帖子,我试图修改POM以排