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

Cucumber 7.2.3使用多标签时出现Process finished with exit code 0异常求助

Cucumber 7.2.3多标签组合执行返回Exit Code 0无测试运行问题

问题概述

使用Cucumber 7.2.3时,单个标签(如@test1)可正常执行测试,但使用多标签组合@test1 and @test2时,控制台仅输出Process finished with exit code 0,无任何测试被执行。已尝试降级版本,问题未解决。

配置代码

@CucumberOptions(
    plugin = {"json:target/cucumber.json"},
    features = "src/test/resources/features",
    glue = "com/company/definitions",
    dryRun = false,
    tags = "@test1 and @test2" 
)

排查方向与解决方案

1. 检查是否存在同时匹配两个标签的场景

@test1 and @test2的逻辑是仅运行同时标记了@test1和@test2的场景。如果你的.feature文件中没有任何场景同时拥有这两个标签,Cucumber找不到可执行的测试,就会正常退出(exit code 0,因为无测试失败),这是最常见的原因。

  • 解决方案:
    • 确认目标场景是否同时添加了两个标签,示例:
      @test1 @test2
      Scenario: 同时符合两个标签的测试场景
        Given 某前置条件
        When 执行某操作
        Then 验证结果
      
    • 如果需要运行带有@test1或@test2的场景,将标签表达式改为@test1 or @test2(或@test1 || @test2)。

2. 验证标签表达式语法兼容性

Cucumber 7.x对标签表达式做了标准化更新,虽支持and/or/not关键字,但也可使用符号&&/||/!替代。若关键字解析存在问题,可尝试替换为符号形式:

tags = "@test1 && @test2"

3. 确认测试扫描范围配置

检查features和glue路径是否正确:

  • features路径需指向包含目标.feature文件的目录,确保所有待执行场景能被扫描到;
  • glue路径需正确指向步骤定义类所在的包,避免因无法绑定步骤导致测试无法执行。

4. 关于Cucumber标签更新与用户反馈

Cucumber 7.x确实对标签系统做了更新,废弃了旧版本的部分语法(如~@tag改为not @tag),但and关键字是官方支持的标准语法。社区中已有不少用户遇到类似问题,多数是场景标签不匹配、表达式逻辑错误或路径配置问题导致的,并非版本本身的bug。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 03:15:47