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

命令行运行Cucumber测试无法识别Step Definitions问题求助

问题根因

你遇到的问题核心是@CucumberOptions中的glue配置错误:glue参数需要指定步骤定义类所属的Java包名,而非文件系统的源码路径,你填写的classpath:src\\test\\java在命令行运行时无法匹配到编译后的步骤类。
IDEA运行正常是因为IDE会默认将src/test/java加入运行时classpath,错误路径碰巧能匹配到源码中的步骤类,而命令行运行时使用的是target/test-classes下编译后的产物,不存在src/test/java这个路径,因此无法识别步骤定义。

解决方案

1. 修正glue配置

将@CucumberOptions中的glue字段修改为你的LoginSteps类实际所属的包名:
示例:如果你的LoginSteps类顶部的包声明为package com.xxx.test.steps;,则修改为:

@CucumberOptions(
        glue={"com.xxx.test.steps"},
        features = "src/test/resources",
        plugin={"pretty","html:target/site/cucumber-pretty","json:target/cucumber.json"})

如果你的LoginSteps没有声明包(不推荐该写法),则直接配置为空:

glue={""},

2. 清理编译后重试

修改完成后,执行清理命令后再运行测试即可:

# Maven项目执行
mvn clean test

# Gradle项目执行
gradle clean test

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 18:36:01