Citrus-Cucumber:我可以 运行 一个黄瓜场景吗?

Citrus-Cucumber: Can I run a single Cucumber Scenario?

我有一个 Cucumber 功能文件,其中包含一系列用于执行 Citrus 集成测试的场景(Citrus-Cucumber 集成)。我可以 运行 在 IntelliJ 中或通过 Maven 一次处理所有场景。

工作完美,但是否可以在 IntelliJ 中或通过 Maven 运行 单个场景

在 IntelliJ 中,我找到了一个 Cucumber 插件,它为我提供了这个选项,但是在用依赖技巧修复了很多 NoClassDefFound 错误之后,它失败了,因为它不尊重 Citrus 项目文件,例如 citrus-application.properties.

对自己回答:是的,我可以。

根据 Cucumber docs,它使用 tags 来(令人惊讶)标记场景。标签以 @ 符号开头,可以在功能或场景上设置任意数量的标签。

示例:

@Test123
@Important
Scenario: My awesome Scenario
  Given ...
  When ...
  Then ...

@Test456
Scenario: My other Scenario
  Given ...
  When ...
  Then ...

有了这些标签,我可以 "select" 基于标签执行的场景。例如,要执行所有重要的场景,我使用标签 @Important.

cucumber --tags @Important

由于我通过 Citrus class 执行测试,因此我必须传递要在测试 class.

CucumberOptions 中执行的标签
@RunWith(Cucumber.class)
@CucumberOptions(
        strict = true,
        glue = { "com.consol.citrus.cucumber.step.runner.core" },
        plugin = { "com.consol.citrus.cucumber.CitrusReporter" },
        tags = { "@Important" }
)
public class RunCucumberTests {
}

不是super-convenient,每次都编辑测试class元数据,但它有效。