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

执行Feature文件时出现‘Deprecated Main Class’警告及步骤片段缺失问题

Cucumber运行警告及步骤代码片段问题解决

一、处理cucumber.api.cli.Main废弃警告

警告提示当前使用的cucumber.api.cli.Main类已过时,需替换为io.cucumber.core.cli.Main:

  • 若是IDE运行配置启动,找到运行配置的主类设置,直接把cucumber.api.cli.Main替换成io.cucumber.core.cli.Main
  • 若是Maven命令运行,检查cucumber-maven-plugin的配置,确保<mainClass>标签指定为io.cucumber.core.cli.Main:
    <plugin>
        <groupId>io.cucumber</groupId>
        <artifactId>cucumber-maven-plugin</artifactId>
        <version>你的Cucumber版本号</version>
        <configuration>
            <mainClass>io.cucumber.core.cli.Main</mainClass>
            <!-- 其他配置如features、glue等 -->
        </configuration>
    </plugin>
    

二、解决无法获取步骤代码片段的问题

按以下步骤逐一排查:

  1. 指定步骤定义的扫描包
    必须明确告诉Cucumber去哪里找步骤定义类:
    • IDE运行时,在Program arguments里添加--glue 你的步骤定义包路径(比如--glue com.test.stepdefs)
    • Maven插件配置中,添加<glue>标签指定包:
      <configuration>
          <glue>com.test.stepdefs</glue>
          <features>src/test/resources/features</features>
      </configuration>
      
  2. 统一Cucumber依赖版本
    所有Cucumber相关依赖(cucumber-core、cucumber-java、cucumber-junit等)必须使用相同版本,版本不一致会导致功能异常。另外,移除cucumber-jvm-deps,新版本Cucumber已不再需要这个依赖,留着可能引发冲突。
  3. 检查Feature文件路径
    确保Feature文件放在标准资源目录(如src/test/resources/features),且运行配置或Maven插件中正确指定了Feature文件的路径。
  4. 改用JUnit运行器执行
    直接运行Feature文件容易出现配置遗漏,建议创建JUnit测试类来执行:
    import io.cucumber.junit.Cucumber;
    import io.cucumber.junit.CucumberOptions;
    import org.junit.runner.RunWith;
    
    @RunWith(Cucumber.class)
    @CucumberOptions(
        features = "src/test/resources/features",
        glue = "com.test.stepdefs",
        monochrome = true
    )
    public class LoginTestRunner {
    }
    
    运行这个JUnit类后,控制台会自动输出未定义步骤的代码片段,直接复制到步骤定义类中即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 13:29:56