Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 从gradle的黄瓜测试中获得jacoco报告_Java_Gradle_Cucumber_Code Coverage_Jacoco - Fatal编程技术网

Java 从gradle的黄瓜测试中获得jacoco报告

Java 从gradle的黄瓜测试中获得jacoco报告,java,gradle,cucumber,code-coverage,jacoco,Java,Gradle,Cucumber,Code Coverage,Jacoco,我在一个java项目中与gradle合作,我使用gradle任务运行cucumber测试,如下所示: task cucumber (){ //task that starts the app dependsOn 'jettyRunDaemon' jvmArgs '-javaagent:E:/MyProject/build/jacoco/jacocoagent.jar=destfile=build/jacoco/jacoco.cucumber.exec' doLast { javaexe

我在一个java项目中与gradle合作,我使用gradle任务运行cucumber测试,如下所示:

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
}
task(){
//启动应用程序的任务
dependsOn“JettyRundemon”
jvmArgs'-javaagent:E:/MyProject/build/jacoco/jacoagent.jar=destfile=build/jacoco/jacoco.cucumber.exec'
多拉斯特{
javaexec{
main='cumber.api.cli.main'
classpath=sourceset.main.output+
sourceset.test.output+
configurations.testRuntime
args=黄瓜args()
}
}
}
罗列黄瓜(){
def参数=[
“--格式”,“junit:build/cucumber reports/junit/report.xml”,
“--格式”,“html:build/reports/cumber”,
“-f”,“漂亮”,
“--glue”、“com.company.packageWithGlueJavaCode”]
//要素位置
args.add('src/test/resources/features')
返回参数
}

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

只要用这个jvm参数添加一个JaCoCo代理jar就可以了

-javaagent:[yourpath/]jacocoagent.jar=[option1]=[value1],[option2]=[value2]
生成.exec文件

报告生成

基于收集的*.exec文件,可以使用与Java代理收集的执行数据相同的方法创建报告。请注意,要生成报告,必须提供原始类文件,而不是插入指令的副本


请参见

您可以发布一段gradle脚本来执行此操作吗?我在尝试使用cumber{formats=[“pretty”、“html:build/reports/cumber”、“json:build/results/cumber/cumber.json”]glueDirs=[“src/cumber/java”]featureDirs=[“src/cumber/resources”]JVM选项{def jacocagent=zipTree(configurations.jacocagent.singleFile).filter{it.name==“jacocagent.jar”}.singleFile jvmArgs=[”-javaagent:$jacocagent=destfile=$buildDir/results/jacoco/cucumber.exec,append=false”}