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
相关产品推荐
相关产品推荐

