さまざまなキュウリのタグが付いたITケースがたくさんあります。私のメインランナークラスでは、@ oneまたは@twoのすべてのシナリオを除外します。だから、以下は私が試したオプションですオプション1
@CucumberOptions(tags=Array("~@one,~@two"), .....)
またはオプション2
@CucumberOptions(tags=Array("~@one","~@two").....
オプション1で試したところ、@ twoでタグ付けされたテストケースは実行されましたが、2番目のオプションでは実行されませんでした。キュウリのドキュメントに従って、ORは、タグが"@One,@Two"
。これが事実である場合、なぜ除外が同じように機能しないのですか、つまり最初のオプションですか?
更新:このコードはscalaで書かれています。
私はそれがどのように機能するかを理解したと思います。
@Cucumber.Options(tags = {"~@one, ~@two"})
-これは、「@ oneが存在しない場合」に変換されます[〜#〜] or [〜#〜]「@twoが存在しない場合」は、シナリオを実行します
したがって、以下の機能のすべてのシナリオが実行されます。というのも、最初のシナリオには@oneではなく@oneというタグがあります。同様に、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"})
-これは[〜#〜] both [〜#〜] @oneと@twoが存在しない場合にのみシナリオを実行することを意味します。タグの1つが存在しても、実行されません。したがって、予想どおり、@ threeのシナリオのみが実行されました。
配列が気に入らない可能性はありますか?
@CucumberOptions(tags={"~@one,~@two"}, .....)