gradle jacocoTestReport always SKIPPED

iezvtpos  于 2023-04-30  发布在  其他
关注(0)|答案(2)|浏览(211)

预期行为

jacocoTestReport工作

当前行为

jacocoTestReport跳过

上下文

我创建了一个类型为Test的任务,jacocoTestReport依赖于该任务。当我运行任务时,jacocoTestReport不起作用,我得到了以下信息

jacocoTestReport SKIPPED

我发现如果我直接使用任务test,jacocoTestReport工作正常。这让我很困惑
下列代码导致了上述问题

plugins {
    id 'java'
    id 'jacoco'
}

repositories {
    mavenCentral()
}

dependencies {

}

task myTest(type: Test) {
    useTestNG()
    useJUnitPlatform()

    finalizedBy jacocoTestReport
    reports {
        junitXml.required = false
        html.required = true
    }
    jacoco {
        enabled = true
        destinationFile = layout.buildDirectory.file("jacoco/${name}.exec").get().asFile
    }
}

jacocoTestReport {
    // tests are required to run before generating the report
    dependsOn myTest
    reports {
        xml.required = false
        csv.required = false
        html.outputLocation = layout.buildDirectory.dir('jacocoHtml')
    }

}

复制步骤

example project

您的环境Gradle 7.1.1

41ik7eoe

41ik7eoe1#

这是意料之中的事,不是问题。就因为我错误地使用了jacocoTestReport
参见https://github.com/gradle/gradle/issues/18271

k2fxgqgv

k2fxgqgv2#

我也有同样的问题。我把我在这里找到的东西贴在这里,希望它能对有同样问题的人有所帮助。

  • config:我正在使用groovy和gradle以及spock测试。
  • 问题:当运行测试时,我只生成了一个jacoco空文件夹,并且没有测试报告。
  • 我运行以下脚本来跟踪信息。
./gradlew clean build jacocoTestReport  --i
  • 我发现“jacocoTestReport跳过”。为什么跳过了?
> Task :lib:jacocoTestReport SKIPPED
Skipping task ':lib:jacocoTestReport' as task onlyIf is false.
:lib:jacocoTestReport (Thread[Execution worker for ':',5,main]) completed. Took 0.0 secs.
:lib:check (Thread[Execution worker for ':',5,main]) started.
  • 根本原因:
  • Jacoco使用JUnit平台生成代码覆盖率报告,即使在运行Spock测试时也是如此。如果Jacoco未设置JunitPlatform,则无法生成测试报告。
  • 溶液
  • 将useJUnitPlatform()添加到test {}
test {
    useJUnitPlatform()
    finalizedBy jacocoTestReport // report is always generated after tests run
}

jacocoTestReport {
    dependsOn test // tests are required to run before generating the report
    reports {
        xml.enabled false
        csv.enabled false
        html.enabled true
        html.destination file("${buildDir}/jacocoHtml")
    }
}
  • 运行测试并在测试后生成测试报告
./gradlew test
  • 构建截图。gradle和jacoco文件夹x1c 0d1x
  • 参考文献
  • www.example.com
  • www.example.com
  • www.example.com

相关问题