web-dev-qa-db-ja.com

きゅうりタグを除外する方法

さまざまなキュウリのタグが付いたITケースがたくさんあります。私のメインランナークラスでは、@ oneまたは@twoのすべてのシナリオを除外します。だから、以下は私が試したオプションですオプション1

@CucumberOptions(tags=Array("~@one,~@two"), .....)

またはオプション2

@CucumberOptions(tags=Array("~@one","~@two").....

オプション1で試したところ、@ twoでタグ付けされたテストケースは実行されましたが、2番目のオプションでは実行されませんでした。キュウリのドキュメントに従って、ORは、タグが"@One,@Two"。これが事実である場合、なぜ除外が同じように機能しないのですか、つまり最初のオプションですか?

更新:このコードはscalaで書かれています。

11
JavaMan

私はそれがどのように機能するかを理解したと思います。

@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のシナリオのみが実行されました。

14
Eswar

配列が気に入らない可能性はありますか?

@CucumberOptions(tags={"~@one,~@two"}, .....)
1
jmccure