私はそれがどのように機能するかを理解したと思います。
@Cucumber.Options(tags = {"~@one, ~@two"})
- これは、「@one is not there」の場合、または「@two is not there」の場合、シナリオを実行するという意味になります。
したがって、以下の機能のすべてのシナリオが実行されます。最初のシナリオにはタグ @one がありますが、@two はありません。同様に、2 番目のシナリオにはタグ @two がありますが、@one はありません。3 番目のシナリオには @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 演算を行うと:
@Cucumber.Options(tags = {"~@one", "~@two"})
- これは、@one と @two の両方が存在しない場合にのみシナリオを実行することを意味します。タグの 1 つがあっても実行されません。予想通り、@three を含むシナリオのみが実行されました。