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

如何让Cucumber.io测试场景按顺序而非并行执行?

解决Cucumber+Appium批量测试时并行执行导致的会话创建错误问题

1. 强制禁用Cucumber并行执行

这是最直接的解决方式,确保所有场景串行执行:

  • 在项目配置文件(如cucumber.properties或junit-platform.properties)中添加配置:
    cucumber.execution.parallel.enabled=false
    
  • 如果使用JUnit注解配置测试类,在@CucumberOptions中明确关闭并行:
    @CucumberOptions(
        features = "src/test/resources/features",
        glue = "com.yourpackage.stepdefs",
        parallel = false // 禁用并行
    )
    public class RunCucumberTests {}
    
  • 终端执行时,直接追加禁用并行的参数,完整命令如下:
    mvn test -Dcucumber.options="--tags @TagToRun" -Dcucumber.execution.parallel.enabled=false
    

2. 修正驱动与服务的生命周期管理

确保Appium驱动和服务的创建/销毁逻辑不会因并行冲突:

  • 避免使用静态变量存储Appium驱动实例,改为每个测试类/场景独立持有驱动,防止多个场景共享同一驱动导致资源冲突
  • 将Appium服务的启动放在@BeforeClass(JUnit 4)或@BeforeAll(JUnit 5),销毁放在@AfterClass或@AfterAll,确保服务仅在所有场景执行完毕后关闭,而非中途被某个特性文件的@AfterClass提前销毁

3. 固定测试执行顺序(可选)

如果需要按特定顺序执行特性文件,可配置Cucumber按定义顺序执行:

  • 在配置文件中添加:
    cucumber.execution.order=defined
    
    该配置会按照特性文件在项目中的定义顺序执行场景,配合禁用并行,彻底避免随机并行的问题

内容的提问来源于stack exchange,提问作者Youssef Ehab

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 03:52:34