You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

IntelliJ中Cucumber配置完成后测试运行故障求助

解决IntelliJ中Cucumber骨架项目运行测试异常的问题

兄弟,我之前也踩过类似的坑——空Runner类下运行Feature文件本该提示「0 tests found」,结果要么跑不起来要么报一堆奇怪的错。结合你的环境(JDK1.8、Windows10、Cucumber插件已装),给你列几个排查和解决的实操步骤:

1. 先确认Feature文件的基础格式是否合规

Cucumber对Feature文件的结构有硬性要求,哪怕是最基础的测试文件,也得有标准的关键字开头,比如:

Feature: 基础测试示例
  Scenario: 空场景演示
    Given 一个待实现的测试步骤

如果你的Feature文件连Feature/Scenario这些核心关键字都没有,IntelliJ根本识别不了这是Cucumber测试文件,自然会出现异常行为。

2. 检查POM依赖的版本兼容性(重点!)

因为你用的是JDK1.8,必须确保Cucumber的版本是兼容Java8的(比如4.8.1或5.x早期版本,高版本Cucumber已经放弃对Java8的支持)。POM里至少要包含这些核心依赖:

<dependencies>
    <!-- Cucumber核心依赖 -->
    <dependency>
        <groupId>io.cucumber</groupId>
        <artifactId>cucumber-java</artifactId>
        <version>4.8.1</version>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>io.cucumber</groupId>
        <artifactId>cucumber-junit</artifactId>
        <version>4.8.1</version>
        <scope>test</scope>
    </dependency>
    <!-- JUnit依赖(Cucumber依赖它执行测试) -->
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.13.2</version>
        <scope>test</scope>
    </dependency>
</dependencies>

另外记得配置maven-surefire-plugin,让Maven能识别Cucumber测试:

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-surefire-plugin</artifactId>
            <version>2.22.2</version>
            <configuration>
                <includes>
                    <include>**/Runner.java</include>
                </includes>
            </configuration>
        </plugin>
    </plugins>
</build>

3. 给空Runner类补全基础注解

哪怕你还没写任何逻辑,Runner类也得有Cucumber的核心注解,否则IntelliJ根本不知道这是测试入口。最基础的写法如下:

import cucumber.api.CucumberOptions;
import cucumber.api.junit.Cucumber;
import org.junit.runner.RunWith;

@RunWith(Cucumber.class)
@CucumberOptions(
        features = "src/test/resources/features", // 你的Feature文件路径
        glue = "com.example.steps" // 步骤定义所在包(哪怕空着也要填存在的包)
)
public class Runner {
    // 这里可以空着,但注解必须保留
}

4. 检查IntelliJ的Cucumber运行配置

  • 打开Run/Debug Configurations,如果没有自动生成的Cucumber配置,手动添加一个:
    • 点击+号选择Cucumber Java
    • 在Glue字段填写步骤定义所在的包(比如com.example.steps)
    • 在Feature file or directory选择你的Feature文件所在目录或具体文件
  • 再去Project Structure确认:
    • Project SDK和Module SDK都设置为JDK1.8

5. 清理IntelliJ缓存(终极解决手段)

Windows下IntelliJ的缓存偶尔会抽风,导致插件或依赖识别异常。操作步骤:

  • 点击File -> Invalidate Caches...
  • 勾选Invalidate and Restart,等待重启完成后再尝试运行

做完这些步骤,应该就能看到预期的「0 tests found」提示了——毕竟你还没编写对应的步骤定义,Cucumber找不到可执行的测试逻辑,自然会提示零测试可运行。

内容的提问来源于stack exchange,提问作者Pix81

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 09:13:02