【问题标题】:Passing in tags to Gradle cucumber task将标签传递给 Gradle 黄瓜任务
【发布时间】:2020-02-18 12:52:05
【问题描述】:

我知道我们可以通过在 build.gradle 文件中指定以下内容将 cucumber 标签传递给 Gradle:

test {
    systemProperty "cucumber.options", System.getProperty("cucumber.options")
}

所以当你运行gradlew test -Dcucumber.options="--tags @CDC" 时,它只会运行带有 CDC 标签的场景。

但我的问题是我是否可以将黄瓜选项传递给黄瓜任务。我需要这样做的原因是因为我的黄瓜任务在运行任务后会创建一个 JSON 文件,并且我正在使用 gradle-cucumber-reporting 插件 (https://github.com/SpacialCircumstances/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-cucumber-reporting 的 sn-p:

cucumberReports {
  outputDir = file('cucumber-pretty-report')
  buildId = '0'
  reports = files('cucumber.json')
}

【问题讨论】:

    标签: java gradle cucumber cucumber-jvm


    【解决方案1】:

    你可以在你的黄瓜任务中添加这样的东西:

    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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-06-06
      • 1970-01-01
      • 2021-06-09
      • 1970-01-01
      • 2022-07-21
      • 1970-01-01
      相关资源
      最近更新 更多