当前位置: 首页 > 知识库问答 >
问题:

"未收集覆盖信息."生成Jacoco报告后运行'gradle sonarRunner'时

督建柏
2023-03-14

我从Sonar GitHub repo中的“java gradle simple”示例开始:

https://github.com/SonarSource/sonar-examples/tree/master/projects/languages/java/gradle/java-gradle-simple

我已经将jacoco插件添加到我的构建中。gradle文件在一个空文件中查看单元测试覆盖率结果,我看到警告:

没有收集覆盖信息。也许您忘记将调试信息包含到编译类中?

我目前运行的是4.3版。这是我在运行“gradle test jacocoTestReport sonarRunner”后看到的:

我的身材。gradle文件如下所示:

apply plugin: 'java'
apply plugin: 'sonar-runner'
apply plugin: 'jacoco'

allprojects {  
  ext.baseVersion = "0.1"
  ext.snapshotVersion = true

  group = "org.sonar.tests"
  version = "$baseVersion" + (snapshotVersion ? "-SNAPSHOT" : "")
}

sonarRunner {
    sonarProperties {
        property "sonar.projectName", "Simple Java Gradle Project"
        property "sonar.projectKey", "org.codehaus.sonar:example-java-gradle"
        property "sonar.jacoco.reportPath", "${project.buildDir}/jacoco/test.exec"
        property "sonar.binaries", "${project.buildDir}/classes"
        property "sonar.sources", "src/main"
        property "sonar.tests", "src/test"
        property "sonar.java.coveragePlugin", "jacoco"
    }
}

buildscript {
    repositories { mavenCentral() }
    dependencies { classpath 'org.ajoberstar:gradle-jacoco:0.1.0' }
}

test {
  ignoreFailures = true
}

dependencies {
    testCompile group: 'junit', name: 'junit', version: '4.10'
}

repositories {
    mavenCentral()
}

是否有我缺少的其他配置?令人惊讶的是,关于使用Gradle生成声纳单元测试覆盖率的信息似乎并不多。

共有1个答案

严修谨
2023-03-14

由于您使用的是jdk 8,因此应将以下块添加到gradle脚本中:

jacoco {
    toolVersion = "0.7.0.201403182114"
}

另外,您应该确保您的sonar版本支持jdk8

 类似资料:
  • 我试图设置为我的项目的代码覆盖 我的项目基于 下面是我项目的 然后我运行并看到以下内容 然后我运行,我看到 问题 -配置中有什么不正确 -如何生成报告? 谢啦

  • 我一直在尝试在JBoss服务器中实现JaCoCo离线代码覆盖,使用仪表化的EAR进行部署和jacococagent.jar,以便跟踪针对所述JBoss运行的外部集成测试的代码覆盖。 我一直在关注这样的指南: http://www.eclemma.org/jacoco/trunk/doc/offline.html http://automationrhapsody.com/code-coverage

  • 当运行Gradle的Jacoco插件时,我在一组选定的类上得到零代码覆盖率报告。我已经确认测试这些类的所有单元测试都已成功运行。 非常有趣的是,EclEmma在Eclipse中生成了正确的代码覆盖率结果。我已经确认这两个工具使用的是相同版本的Jacoco。 我想知道这两种工具的区别是什么?我需要Gradle Jacoco插件的额外配置吗。 编辑:我的Gradle Jacoco输出显示“com类的执

  • 我有一个与jacoco的项目,我希望能够过滤某些类和/或包。 我阅读了以下文档: 使用Sonarrunner和Gradle(不使用sonar)从Jacoco报告中排除包 Jacoco-从报表中排除JSP(它似乎适用于maven,我使用的是gradle) Maven Jacoco配置-从不工作的报告中排除类/包(这似乎适用于Maven,我使用的是gradle)

  • 我在测试android以创建覆盖率测试报告时遇到问题。我使用./gradlew createDebugCoverageReport命令创建覆盖率报告。已创建报告,但所有测试的结果均为%0。第一个设备已植根,但第二个设备未植根。我们使用这两个设备测试勺子,并查看勺子输出。所以这两个设备一起使用。问题:当我们使用第一个设备(根设备)运行此命令时,将按预期创建所有覆盖率测试结果,但当我们同时使用两个设备