使用 gradle 从黄瓜测试中获取 jacoco 报告

Getting jacoco report from cucumber tests with gradle

我在 java 项目中与 gradle 合作,我 运行 我的黄瓜测试 gradle 任务,如下所示:

task cucumber (){
//task that starts the app
dependsOn 'jettyRunDaemon'
 jvmArgs '-javaagent:E:/MyProject/build/jacoco/jacocoagent.jar=destfile=build/jacoco/jacoco.cucumber.exec'
doLast {
    javaexec {
        main = 'cucumber.api.cli.Main'
        classpath = sourceSets.main.output +
                    sourceSets.test.output +
                    configurations.testRuntime
        args = cucumberArgs()
    }
}
}

List<String> cucumberArgs() {
def args = [
    '--format', 'junit:build/cucumber-reports/junit/report.xml',
    '--format', 'html:build/reports/cucumber',
    '-f', 'pretty',
    '--glue', 'com.company.packageWithGlueJavaCode']

// Feature locations
args.add('src/test/resources/features')

return args
}

有人知道是否有办法通过配置 gradle 获得我的黄瓜测试的 Jacoco 代码覆盖率报告吗?我知道对于 JUnit(测试任务),jacoco 会自动在 jacoco/*.exec 中创建一个 exec 文件,我可以从中获取报告...但是我可以通过某种方式获取,让我们说一个 cucumber.exec 文件到从中获取报告??

只需使用此 jvm 参数添加一个 JaCoCo Agent jar

-javaagent:[yourpath/]jacocoagent.jar=[option1]=[value1],[option2]=[value2]

生成 .exec 文件。

报告生成

可以根据收集的 *.exec 文件创建报告,方法与使用 Java 代理收集的执行数据相同。请注意,对于报告生成,必须提供原始 class 文件,而不是经过检测的副本。

http://www.eclemma.org/jacoco/trunk/doc/agent.html