gradle - 无法在Gradle上运行 cucumber JUnit测试

标签 gradle junit5 cucumber-jvm

我正在尝试使用IntelliJ Community Edition和Gradle 5.5.1运行Cucumber / Selenium项目。

我的文件夹结构如下:

ProjectRoot
|
src---main---java
|
src---test---java---packagename---stepdefinitions---Steps.java
        |
        -----resources---feature---application.feature

我的TestRunner类如下:
@RunWith(Cucumber.class)
@CucumberOptions(
        plugin = {"pretty", "json:cucumber-report.json"},
        features = {"src/test/resources/feature"})
public class TestRunner {
}

当我尝试运行TestRunner时,得到的是以下内容:
Testing started at 18:48 ...
> Task :cleanTest
> Task :compileJava UP-TO-DATE
> Task :processResources NO-SOURCE
> Task :classes UP-TO-DATE
> Task :compileTestJava
> Task :processTestResources UP-TO-DATE
> Task :testClasses
> Task :test FAILED
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':test'.
> No tests found for given includes: [org.fifthgen.scanmaltatesting.TestRunner](filter.includeTestsMatching)
* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.
* Get more help at https://help.gradle.org
BUILD FAILED in 1s
5 actionable tasks: 3 executed, 2 up-to-date

这是我的build.gradle:
plugins {
    id 'java'
}

group 'org.fifthgen'
version '1'

sourceCompatibility = 11
targetCompatibility = 11

repositories {
    mavenCentral()
}

wrapper.gradleVersion = '5.5.1'

def cucumberVersion = '4.7.2'
def junitVersion = '5.5.2'

dependencies {
    implementation 'org.seleniumhq.selenium:selenium-java:3.141.59'

    testImplementation "io.cucumber:cucumber-java:${cucumberVersion}"
    testImplementation "io.cucumber:cucumber-junit:${cucumberVersion}"

    testImplementation "org.junit.jupiter:junit-jupiter-api:${junitVersion}"
    testRuntimeOnly "org.junit.jupiter:junit-jupiter-engine:${junitVersion}"
}

test {
    useJUnitPlatform()
    scanForTestClasses = false
}

当我使用Gradle运行test任务时,我得到
BUILD SUCCESSFUL in 0s
4 actionable tasks: 1 executed, 3 up-to-date
18:52:41: Task execution finished 'test'.

没有运行 cucumber 方案。

最佳答案

ˋRunWithˋ是JUnit 4机制。为了与JUnit 5平台机制一起使用,必须包含对junit-vintage引擎的依赖,该依赖关系允许在JUnit 5上运行JUnit 4测试。

另外,您可以更改为JUnit 5的Cucumber引擎。我不确定是否已经发布。

关于gradle - 无法在Gradle上运行 cucumber JUnit测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59456120/

相关文章:

java - Powermock 和 Jmockit 是否有替代方法来模拟静态和私有(private)方法?

java - JUnit测试类顺序

java - JUnit5 - 有没有可靠的方法来获取已执行测试的类

java - 无法单击 HTML 标签内的输入类型 = "radio"?

kotlin - 没有参数的步骤定义不可能吗?

tomcat - 如何通过 Gradle Tomcat 插件使用外部化配置文件?

android - 无法在Android Studio中添加任何第三方依赖项

java - 为 Android 构建时,Unity 项目的 Gradle 构建失败

android - 在项目中时如何进入Android Studio的主屏幕?

testing - 如何按名称运行单个 cucumber 场景