Java 将标记传递给Gradle Cumber任务
我知道我们可以通过在build.Gradle文件中指定以下内容将cucumber标记传递给Gradle:Java 将标记传递给Gradle Cumber任务,java,gradle,cucumber,cucumber-jvm,Java,Gradle,Cucumber,Cucumber Jvm,我知道我们可以通过在build.Gradle文件中指定以下内容将cucumber标记传递给Gradle: test { systemProperty "cucumber.options", System.getProperty("cucumber.options") } 因此,当您运行gradlew测试-Dcucumber.options=“--tags@CDC”时,它将只运行带有CDC标记的场景 但我的问题是,我是否可以将cumber选项传递给cumber任务。我之所以需要这样做,是
test {
systemProperty "cucumber.options", System.getProperty("cucumber.options")
}
因此,当您运行gradlew测试-Dcucumber.options=“--tags@CDC”
时,它将只运行带有CDC标记的场景
但我的问题是,我是否可以将cumber选项传递给cumber任务。我之所以需要这样做,是因为我的cucumber任务在运行任务后创建了一个JSON文件,并且我正在使用gradle cucumber reporting插件()根据JSON文件生成一个报告
黄瓜任务
task cucumber() {
dependsOn assemble, compileTestJava
doLast {
javaexec {
main = "io.cucumber.core.cli.Main"
classpath = configurations.cucumberRuntime + sourceSets.main.output + sourceSets.test.output
args = [
'--plugin', 'html:cucumber-report',
'--plugin', 'json:cucumber.json', //generates a .json report file
'--plugin', 'pretty',
'--plugin', 'usage:cucumber-usage.json',
'--glue', 'hellocucumber', 'src/test/resources']
}
}
}
在Gradle中运行test
任务不会更新JSON文件
以下是gradle Cumber报告的片段:
cucumberReports {
outputDir = file('cucumber-pretty-report')
buildId = '0'
reports = files('cucumber.json')
}
您可以在cucumber任务中添加以下内容:
def tags = getProperty("tags")
args = [
'--plugin', 'html:cucumber-report',
'--plugin', 'json:cucumber.json', //generates a .json report file
'--plugin', 'pretty',
'--plugin', 'usage:cucumber-usage.json',
'--glue', 'hellocucumber', 'src/test/resources',
'--tags', tags]
然后,您可以通过以下方式运行任务:
gradle cucumber -P tags=smoke