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

quarkus-cucumber无法找到步骤定义问题求助

排查Quarkus Cucumber步骤定义无法找到的问题

以下是针对你遇到的问题的具体排查方向和解决办法:

1. 修正@CucumberOptions的路径配置

  • Feature文件路径:不要使用基于项目根目录的相对路径src/test/specifications,改用classpath前缀指向编译后的资源路径:

    @CucumberOptions(
        features = "classpath:specifications/",
        glue = "com.example.test.steps"
    )
    

    同时需要在pom.xml中配置Maven测试资源插件,将src/test/specifications目录纳入测试资源范围,确保feature文件能被复制到target/test-classes:

    <build>
        <testResources>
            <testResource>
                <directory>src/test/specifications</directory>
            </testResource>
            <testResource>
                <directory>src/test/resources</directory>
            </testResource>
        </testResources>
    </build>
    
  • Glue包路径:确认com.example.test.steps包名拼写完全匹配步骤类的实际包名(注意Java包名区分大小写),确保步骤类确实在该包下。

2. 给步骤类添加Quarkus识别注解

quarkus-cucumber需要步骤类被Quarkus依赖注入容器管理,必须在步骤类上添加@QuarkusTestStep注解,示例:

import io.quarkus.cucumber.runtime.QuarkusTestStep;
import io.cucumber.java.en.Given;

@QuarkusTestStep
public class BlahSteps {
    @Given("我有一个测试步骤")
    public void testStep() {
        // 步骤逻辑实现
    }
}

缺少该注解会导致Quarkus无法实例化步骤类,进而让Cucumber无法找到对应的步骤定义。

3. 检查Maven依赖是否正确

确保pom.xml中只引入quarkus-cucumber依赖,避免与普通Cucumber依赖产生版本冲突,基于Quarkus 2.15.2.Final的正确依赖配置:

<dependency>
    <groupId>io.quarkiverse.cucumber</groupId>
    <artifactId>quarkus-cucumber</artifactId>
    <version>0.6.0</version>
    <scope>test</scope>
</dependency>

同时确认已正确引入Quarkus平台BOM来统一依赖版本:

<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>io.quarkus</groupId>
            <artifactId>quarkus-bom</artifactId>
            <version>2.15.2.Final</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>

4. 验证编译后的文件完整性

执行mvn clean compile test-compile后,检查target/test-classes目录:

  • 确认com/example/test/steps/BlahSteps.class存在;
  • 确认specifications/blah.feature存在。
    如果任一文件缺失,说明编译或资源复制环节有问题,需重新检查Maven配置。

5. IntelliJ运行配置额外检查

如果在IntelliJ中运行测试:

  • 确保运行配置的「Glue」字段设置为com.example.test.steps;
  • 右键src/test/specifications目录,选择「Mark Directory as → Test Resources Root」,让IntelliJ识别该目录下的feature文件。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 14:35:53