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

Jacoco在我的Gradle项目中没有显示Spock代码覆盖

谭新知
2023-03-14

我有一个配置了jacoco插件的Gradle项目来报告测试代码覆盖率。我的单元测试是在Spock框架中编写的。

尽管Jacoco插件生成HTML报告,但它报告所有类的代码覆盖率为0%。

我在谷歌上搜索了很多,没找到我缺少的东西。有人和Gradle Jacoco合作过Spock代码吗?

apply plugin: "jacoco"
apply plugin: "groovy"

sourceSets {
    main {
        java { srcDirs = ['src/main/java'] }
        groovy {srcDirs = ['src/main/groovy'] }
        resources { srcDir 'src/main/resources' }
    }

    test {
        java { srcDirs = ['src/test/java'] }
        groovy { srcDirs = ['src/test/groovy'] }
        resources { srcDir 'src/test/resources' }
    }
}

test {
    jvmArgs '-Xms64m', '-Xmx2G', '-XX:MaxPermSize=128m'
}

jacocoTestReport {
    reports {
        xml.enabled false
        csv.enabled false
        html.destination "${buildDir}/jacocoHtml"
    }
}

dependencies {
    testCompile "org.spockframework:spock-core:0.7-groovy-2.0"
    testCompile "org.spockframework:spock-spring:0.7-groovy-2.0"
}

共有1个答案

仲孙凡
2023-03-14

来自@PeterNiederwieser的建议非常有效。以下是最终结果:

apply plugin: "groovy"
apply plugin: "jacoco"

repositories { mavenCentral() }

dependencies {
  compile "org.codehaus.groovy:groovy-all:2.2.2"
  testCompile "org.spockframework:spock-core:0.7-groovy-2.0"
}

jacocoTestReport {
    reports {
        xml.enabled false
        csv.enabled false
        html.destination "${buildDir}/jacocoHtml"
    }
}
 类似资料:
  • 我想展示用Gradle 6.0构建的多项目Spring boot应用程序的测试覆盖范围。我们目前使用JUnit5。 SonarQube中的测试覆盖率为0%,尽管存在一些首次测试。 顶层项目(https://github.com/OpenReqEU/eclipse-plugin-vogella/blob/master/server/build.gradle)中的build.gradle文件有以下输入

  • 我是Groovy gradle世界的新手,我写了一个带有所有测试用例的小型Groovy项目。我试图使用jacoco插件生成代码覆盖率报告。但它只生成测试报告,而不生成代码覆盖率报告。请找到我的jacoco gradle文件配置。我使用的是Gradle4.5版本和Groovy版本:2.5.0-RC-2 JVM:1.8.0_171供应商:Oracle Corporation OS:Windows 10

  • 我看到詹金斯插件中的代码覆盖率为零。我在客户端服务器模式下使用 Jacoco 0.8.7。客户端是詹金斯,服务器(此处存在jaco代理jar)是一个VM。当我使用旧版本的jaco 0.7.4时,这并没有发生。 Jenkins CI日志- Jenkins CI插件配置是这样的。使用ant和maven组合来转储exec文件。

  • 我们有一个Android项目,我们使用Powermock进行一些测试用例,使用Jacoco进行覆盖率报告。我们注意到,我们的一些类返回0%覆盖率,尽管它们确实被覆盖。我们还观察了下面关于受影响类的消息。 一些在线搜索显示Powermock和Jacoco玩得不好,离线仪器是一种可能的解决方法。 之前有人使用过android项目的gradle离线插装脚本吗?

  • 我有一个多模块项目和一个家长pom。xml及其两个模块。项目jar和项目。战争所有测试用例都在项目中。罐子当我运行mvn声纳时。母舰pom上的声纳目标,jacoco。未生成exec,代码覆盖率为空。我在父pom中具有以下属性。 请帮忙。我使用的是Sonarqube 4.2。

  • 我在类BrickSortPar并行中有两个静态方法。它们完全由单元测试覆盖。但是我有一个静态块静态{...}列出了Jacoco仅75%的代码覆盖率。那意味着什么? 以下是确保上述方法的完整代码覆盖率的测试用例: 我在上面的测试课上遗漏了什么吗? 完整的课程可在: https://raw.githubusercontent.com/Fernal73/DSAlgos/master/src/test/j