Cucumber+Serenity同标签场景仅执行第一个的问题排查请求
排查Cucumber+Serenity同标签场景仅执行第一个的问题
以下是具体排查方向:
1. 解决标签配置重复冲突
你的测试类AppTest已经通过@CucumberOptions指定了tags = {"@mytag"},同时Maven命令又叠加了-Dcucumber.options=--tags @mytag,重复的标签过滤规则会干扰Serenity的执行逻辑。
修改后的Maven命令:
clean verify serenity:aggregate
2. 修正Feature文件格式
Gherkin对缩进规则要求严格,标签@mytag需与Scenario关键字左对齐,不能有多余缩进。修正后的Feature内容:
@mytag Scenario: TEST 1 Given User go to url "https://google.com/" When User search with text "selenium" Then BNPL - User should see text "Selenium" @mytag Scenario: TEST 2 Given User go to url "https://google.com/" When User search with text "cucumber" Then BNPL - User should see text "Cucumber"
3. 确认版本兼容性
Serenity与Cucumber版本不匹配会引发执行异常,确保版本组合符合官方规范:
- Serenity Core 3.x 搭配 Cucumber 7.x
- Serenity Core 2.x 搭配 Cucumber 6.x
检查pom.xml中的依赖版本,避免跨版本组合。
4. 检查Hook类逻辑
如果cucumber.hook包下的@Before/@After钩子存在未捕获异常或强制终止代码(如System.exit(0)),会导致后续场景中断。排查钩子类代码,确保每个钩子方法正常执行完毕。
5. 通过日志定位问题
添加日志参数执行Maven命令,查看详细执行日志,确认第二个场景是未被识别还是执行中断:
clean verify serenity:aggregate -X
日志中会显示Cucumber加载的Feature文件和场景数量,根据日志细节进一步定位问题。
内容的提问来源于stack exchange,提问作者cco102
相关产品推荐
相关产品推荐

