我想我知道它是如何工作的。
@Cucumber.Options(tags = {"~@one, ~@two"})
- 这意味着如果“@one 不存在”或“@two 不存在”则执行场景
因此,执行以下功能中的所有场景。因为,第一个场景有标签@one,但没有@two。同样,第二个场景有标签@two,但没有@one。第三个场景既没有@one 也没有@two
Feature:
@one
Scenario: Tagged one
Given this is the first step
@two
Scenario: Tagged two
Given this is the first step
@three
Scenario: Tagged three
Given this is the first step
为了测试我的理解,我更新了功能文件如下。有了这个改变,所有没有标签@one 或@two 的场景都被执行了。即@one @three、@two @three 和@three。
Feature:
@one @two
Scenario: Tagged one
Given this is the first step
@two @one
Scenario: Tagged two and one
Given this is the first step
@one @three
Scenario: Tagged one and three
Given this is the first step
@two @three
Scenario: Tagged two and three
Given this is the first step
@one @two @three
Scenario: Tagged one two and three
Given this is the first step
@three
Scenario: Tagged three
Given this is the first step
现在,如果我们进行 AND 操作:
- 这意味着仅当@one和 @two 都不存在@Cucumber.Options(tags = {"~@one", "~@two"})
时才执行场景。即使其中一个标签在那里,它也不会被执行。所以正如预期的那样,只有@three 的场景被执行了。