Cucumber执行mvn test时无法显示场景与步骤的执行统计信息
解决Cucumber场景与步骤统计输出不显示问题
问题原因
使用JUnit Platform Engine运行Cucumber时,Maven Surefire插件默认会捕获测试输出并以JUnit风格展示,可能压制了Cucumber pretty 插件的格式化输出;另外,若测试启动类中未正确导入PLUGIN_PROPERTY_NAME常量,插件配置也不会生效。
解决方案
1. 修正测试启动类的常量导入
检查RunCucumberTest.java,确保导入正确的常量类,否则插件配置无法生效:
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.PLUGIN_PROPERTY_NAME; @Suite @IncludeEngines("cucumber") @SelectPackages("hellocucumber") @ConfigurationParameter(key = PLUGIN_PROPERTY_NAME, value = "pretty") public class RunCucumberTest { }
2. 调整Maven Surefire插件配置
修改pom.xml中的maven-surefire-plugin,添加配置允许Cucumber的控制台输出:
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <version>3.2.5</version> <configuration> <!-- 禁止Surefire重定向测试输出到文件,保留Cucumber的格式化输出 --> <redirectTestOutputToFile>false</redirectTestOutputToFile> <!-- 可选:直接通过系统属性配置Cucumber插件,确保配置生效 --> <systemPropertyVariables> <cucumber.plugin>pretty</cucumber.plugin> </systemPropertyVariables> </configuration> </plugin>
3. (可选)使用配置文件简化设置
在src/test/resources目录下创建cucumber.properties文件,直接配置Cucumber插件:
cucumber.plugin=pretty
这种方式无需修改代码或pom.xml,配置更直观。
验证效果
重新执行mvn test,即可看到Cucumber风格的场景与步骤统计输出:
hellocucumber/is_it_friday_yet.feature:4 # Sunday isn't Friday 1 Scenarios (1 failed) 3 Steps (1 failed, 2 passed)
内容的提问来源于stack exchange,提问作者Nicolás Bonder
相关产品推荐
相关产品推荐

