'Gradle cucumber' 与 testImplementation 不起作用

toc*_*onn 2 java cucumber gradle

我正在构建一个使用黄瓜的简单测试应用程序。不幸的是,当我尝试运行“ gradle cucumber ”时,它会抛出错误。然而,当我将 testImplement 更改为 build.gradle 中已弃用的 testCompile 时,一切运行正常。这是预期的行为吗?我需要做什么才能让 Cucumber 使用 testImplementation 运行?

构建.gradle:

dependencies {
    testImplementation 'io.cucumber:cucumber-java:4.2.0'
    testImplementation 'io.cucumber:cucumber-junit:4.2.0'
}

configurations {
    cucumberRuntime {
        extendsFrom testRuntime
    }
}

task cucumber() {
    dependsOn assemble, compileTestJava
    doLast {
        javaexec {
            main = "cucumber.api.cli.Main"
            classpath = configurations.cucumberRuntime + sourceSets.main.output + sourceSets.test.output
            args = ['--plugin', 'pretty', '--glue', 'gradle.cucumber', 'src/test/resources']
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

结果(错误):

> Task :cucumber FAILED
Error: Could not find or load main class cucumber.api.cli.Main
Caused by: java.lang.ClassNotFoundException: cucumber.api.cli.Main
Run Code Online (Sandbox Code Playgroud)

构建.gradle:

dependencies {
    testCompile 'io.cucumber:cucumber-java:4.2.0'
    testCompile 'io.cucumber:cucumber-junit:4.2.0'
}
...
Run Code Online (Sandbox Code Playgroud)

结果(作品):

> Task :cucumber
No features found at [src/test/resources]

0 Scenarios
0 Steps
Run Code Online (Sandbox Code Playgroud)

有人可以解释一下这是怎么回事吗?任何帮助是极大的赞赏!

lan*_*ava 6

请参阅此处,其中显示 testRuntime 已弃用

从Java插件继承的compile、testCompile、runtime和testRuntime配置仍然可用,但已弃用

我认为应该是

configurations {
    cucumberRuntime {
        extendsFrom testImplementation
    }
}
Run Code Online (Sandbox Code Playgroud)