我有一个Cucumber功能文件,其中包含一系列方案来执行Citrus集成测试( Citrus-Cucumber集成)。我可以在IntelliJ中或通过Maven一次性运行所有场景。
工作完美,但可以在IntelliJ或Maven中运行单个场景吗?
在IntelliJ中,我找到了一个Cucumber插件,它给了我这个选项,但是在用依赖技巧修复了很多NoClassDefFound
错误之后,它失败了,因为它不尊重Citrus项目文件,例如citrus-application.properties
。
答案 0 :(得分:1)
回答我自己:是的,我可以。
根据Cucumber docs,它使用tags
(令人惊讶的)标记方案。标签以@
符号开头,可以在功能或场景上设置任意数量的标签。
示例:
@Test123
@Important
Scenario: My awesome Scenario
Given ...
When ...
Then ...
@Test456
Scenario: My other Scenario
Given ...
When ...
Then ...
有了这些标签,我可以“选择”基于标签执行的场景。例如,要执行所有重要的方案,我使用标记@Important
。
cucumber --tags @Important
由于我通过Citrus类执行测试,因此我必须传递标记以在我的测试类的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 {
}
每次编辑测试类元数据并不是非常方便,但它确实有效。