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

IntelliJ中运行Cucumber测试报NoSuchElementException异常求助

解决IntelliJ中Cucumber测试抛出NoSuchElementException的问题

错误详情

执行Cucumber测试时出现以下异常:

Exception in thread "main" java.util.NoSuchElementException
    at java.base/java.util.ArrayList$Itr.next(ArrayList.java:1000)
    at java.base/java.util.Collections.max(Collections.java:713)
    at io.cucumber.core.feature.FeatureParser.parseResource(FeatureParser.java:46)
    at java.base/java.util.function.BiFunction.lambda$andThen$0(BiFunction.java:70)

问题根源

从你的POM配置来看,存在两个核心问题:

  1. 不必要的核心依赖排除:你手动排除了cucumber-core、cucumber-gherkin、cucumber-gherkin-messages等Cucumber运行必需的组件,这些是解析Feature文件、执行测试逻辑的基础,缺失会直接导致解析流程崩溃。
  2. 版本不兼容:手动指定的messages依赖版本(21.0.1)与${cucumber.version}对应的版本不匹配,Cucumber全组件必须使用统一版本才能正常协作。

修复方案

步骤1:移除所有不必要的依赖排除

删除所有Cucumber相关依赖中的<exclusions>配置,让Maven自动管理依赖传递,确保核心组件正常引入。

步骤2:统一Cucumber版本

确保所有Cucumber依赖使用相同版本,无需手动引入messages(核心依赖会自动传递该组件)。

修复后的POM依赖示例

假设${cucumber.version}设置为稳定版本(如7.14.0),调整后的配置如下:

<properties>
    <cucumber.version>7.14.0</cucumber.version>
</properties>

<dependencies>
    <dependency>
        <groupId>io.cucumber</groupId>
        <artifactId>cucumber-spring</artifactId>
        <version>${cucumber.version}</version>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>io.cucumber</groupId>
        <artifactId>cucumber-junit</artifactId>
        <version>${cucumber.version}</version>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>io.cucumber</groupId>
        <artifactId>cucumber-java</artifactId>
        <version>${cucumber.version}</version>
        <scope>test</scope>
    </dependency>
</dependencies>

步骤3:刷新项目并重新测试

  1. 在IntelliJ中点击Maven面板的Reload All Maven Projects按钮,确保依赖正确下载。
  2. 执行mvn clean install清理并构建项目。
  3. 重新运行Cucumber测试。

额外检查点

  • 确认Feature文件语法正确,无格式错误(如缺失关键字、缩进混乱)。
  • 检查测试运行器配置,确保指定了正确的Feature文件路径和步骤定义包。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 18:11:04