执行 JUnit 运行程序时没有可用任务 class

No tasks available when executing JUnit runner class

我正在尝试 运行 IntelliJ 中的 Cucumber 功能文件。

Cucumber Options 指向正确的文件夹,但我在尝试执行 JUnit 运行ner class.

时收到 "No tasks available" 通知

我做错了什么?

这是我的 build.gradle:

plugins {
    id 'java'
}

sourceCompatibility = 1.8

apply plugin: 'java'

repositories {
    mavenCentral()
}

compileJava.options.encoding = "UTF-8"

dependencies {
    compile 'org.codehaus.groovy:groovy-all:2.3.11'
    testCompile group: 'junit', name: 'junit', version: '4.12'
    testCompile 'io.cucumber:cucumber-java:4.7.1'
    compile 'org.seleniumhq.selenium:selenium-server:2.44.0'
    testImplementation 'io.cucumber:cucumber-java:4.7.1'
    compile group: 'junit', name: 'junit', version: '4.12'
    compile group: 'org.seleniumhq.selenium', name: 'selenium-java', version: '3.141.59'
    compile group: 'io.cucumber', name: 'cucumber-java', version: '4.7.1'
    compile group: 'io.cucumber', name: 'cucumber-junit', version: '4.7.1'
    compile group: 'io.cucumber', name: 'cucumber-core', version: '4.7.1'
    compile group: 'net.masterthought', name: 'cucumber-reporting', version: '3.20.0'
    compile group: 'io.cucumber', name: 'gherkin', version: '5.1.0'
    compile group: 'info.cukes', name: 'cucumber-picocontainer', version: '1.2.5'
    compile group: 'io.github.bonigarcia', name: 'webdrivermanager', version: '3.6.0'
}

我遇到了同样的问题。当我在 glue 中使用完整的包名时它起作用了,这是我的:

    ...
    features = "src/test/resources/features",
    glue = {"test.java.stepdefinitions"},
    ...

好的,none 个建议的解决方案有效,但我终于弄明白了。

转到 Settings > Build, Execution, Deployment > Build Tools > Gradle 并将 Run tests using:Gradle (Default) 更改为 IntelliJ IDEA

注意:找到解决方案 here

当我遇到这个问题时(尝试 运行 测试时出现“无可用任务”消息),对我有用的是简单地从 Gradle 视图重新导入项目。

Right-click 在 Gradle 视图中的项目和 select Reimport Gradle Project.

"No tasks available" – 我在尝试 运行 Spock 测试时收到此消息。

原因是我没有正确配置 gradle 插件:

plugins {
    id 'java-library'
    id 'groovy' // this one is also necessary
}

确保您已启用 'groovy' 插件,然后重新导入您的项目。

我遇到了同样的问题。 使用 gradle 时请确保您的项目结构正确。 你的测试应该在 src>test>java

这解决了我的问题。

我在尝试 运行 我的 Gradle 项目中的 JUnit 测试时遇到了同样的问题。该解决方案适用于我的情况。

我也遇到了类似的问题,在我的例子中,这是因为我在定义测试时忘记使用“public”访问修饰符class,并且在 Junit 4 中很明显,所有测试classes 应该是 public.