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

SpringBoot集成Cucumber测试:mvn test执行配置失败求助

解决Cucumber + Maven 测试执行配置问题

1. 校准JUnit 5 + Cucumber依赖配置

确保pom.xml中依赖版本兼容且完整,cucumber-junit-platform-engine需与Cucumber核心版本一致,同时引入JUnit Jupiter相关依赖:

<dependencies>
    <!-- Cucumber核心与JUnit平台引擎 -->
    <dependency>
        <groupId>io.cucumber</groupId>
        <artifactId>cucumber-java</artifactId>
        <version>7.14.0</version>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>io.cucumber</groupId>
        <artifactId>cucumber-junit-platform-engine</artifactId>
        <version>7.14.0</version>
        <scope>test</scope>
    </dependency>

    <!-- JUnit 5 依赖 -->
    <dependency>
        <groupId>org.junit.jupiter</groupId>
        <artifactId>junit-jupiter-api</artifactId>
        <version>5.9.2</version>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>org.junit.platform</groupId>
        <artifactId>junit-platform-suite</artifactId>
        <version>1.9.2</version>
        <scope>test</scope>
    </dependency>
</dependencies>

2. 配置Maven Surefire插件

使用最新稳定版Surefire插件(如3.2.2),无需复杂的includes配置,只需确保插件支持JUnit Platform:

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-surefire-plugin</artifactId>
            <version>3.2.2</version>
            <!-- 可选:仅执行指定Runner类时添加 -->
            <configuration>
                <includes>
                    <include>**/*Runner.class</include>
                </includes>
            </configuration>
        </plugin>
    </plugins>
</build>

3. 编写正确的Cucumber Runner类

使用JUnit 5的@Suite注解配合Cucumber参数,明确指定feature文件路径和胶水代码包:

import org.junit.platform.suite.api.ConfigurationParameter;
import org.junit.platform.suite.api.IncludeEngines;
import org.junit.platform.suite.api.SelectPackages;
import org.junit.platform.suite.api.Suite;

import static io.cucumber.junit.platform.engine.Constants.FEATURES_PROPERTY_NAME;
import static io.cucumber.junit.platform.engine.Constants.GLUE_PROPERTY_NAME;

@Suite
@IncludeEngines("cucumber")
@SelectPackages("com.nttdata.automation") // 替换为你的胶水代码根包
@ConfigurationParameter(key = FEATURES_PROPERTY_NAME, value = "src/test/resources/features")
@ConfigurationParameter(key = GLUE_PROPERTY_NAME, value = "com.nttdata.automation.steps") // 步骤定义所在包
public class CucumberRunner {
}

4. 检查Feature文件规范

  • 确保文件放在src/test/resources/features目录下,后缀为.feature
  • 文件内容符合Gherkin语法,示例:
Feature: API自动化测试
  Scenario: 验证用户查询接口
    Given 初始化用户查询请求参数
    When 调用用户信息查询API
    Then 接口返回状态码200且数据正确

5. 执行测试验证

在项目根目录执行命令:

mvn clean test

若仍有问题,添加调试日志排查:

mvn clean test -Dlog.level=DEBUG

内容的提问来源于stack exchange,提问作者Marco Tenorio Cortés

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 20:55:00