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元数据,但它有效。
我有一个 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元数据,但它有效。