Spring整合Cucumber测试无法被Maven Surefire/Failsafe识别
问题:Maven Surefire/Failsafe插件无法识别Cucumber集成测试用例
我有一个集成测试与主应用分离的项目,测试能在IntelliJ中正常运行,但Maven Surefire和Failsafe插件无法识别任何测试用例,仅能识别BackendTests文件。
- 当将
<include>**/BackendTests.java</include>修改为<include>**/Gibberish.java</include>时,执行mvn clean install命令,控制台无任何测试相关输出; - 当路径正确时,控制台显示无测试用例被执行。
pom.xml构建配置
<build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-failsafe-plugin</artifactId> <version>3.0.0-M7</version> <configuration> <includes> <include>**/BackendTests.java</include> </includes> </configuration> <executions> <execution> <goals> <goal>integration-test</goal> <goal>verify</goal> </goals> </execution> </executions> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <version>3.0.0-M7</version> <configuration> <includes> <include>**/BackendTests.java</include> </includes> <testFailureIgnore>true</testFailureIgnore> </configuration> </plugin> </plugins> </build>
pom.xml依赖配置
<!-- Spring boot --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-autoconfigure</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-configuration-processor</artifactId> <optional>true</optional> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <version>3.0.0</version> <scope>test</scope> </dependency> <!-- Lombok --> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.18.24</version> </dependency> <!-- Cucumber --> <dependency> <groupId>io.cucumber</groupId> <artifactId>cucumber-core</artifactId> <version>${cucumber.version}</version> <scope>test</scope> </dependency> <dependency> <groupId>io.cucumber</groupId> <artifactId>cucumber-java</artifactId> <version>${cucumber.version}</version> <scope>test</scope> </dependency> <dependency> <groupId>io.cucumber</groupId> <artifactId>cucumber-junit</artifactId> <version>${cucumber.version}</version> <scope>test</scope> </dependency> <dependency> <groupId>io.cucumber</groupId> <artifactId>cucumber-spring</artifactId> <version>${cucumber.version}</version> <scope>test</scope> </dependency>
BackendTests代码
@RunWith(Cucumber.class) @CucumberOptions( features = "src/test/resources/features", glue = {"backendtests.step", "backendtests.table", "backendtests.config"} ) public class BackendTests { }
配置类代码
config目录下包含两个文件:
@SpringBootTest public class AbstractIntegrationTest { } // -------------------- @CucumberContextConfiguration @ContextConfiguration(classes = {Application.class, AbstractIntegrationTest.class}, loader = SpringBootContextLoader.class) public class SpringCucumberConfiguration { }
测试步骤结构
测试步骤位于step.definitions目录下,所有步骤类均继承AbstractIntegrationTest。
内容的提问来源于stack exchange,提问作者user8549135
相关产品推荐
相关产品推荐

