11

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

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

またはオプション 2

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

オプション 1 で試したところ、@two でタグ付けされたテスト ケースの実行が開始されましたが、2 番目のオプションでは実行されませんでした。キュウリのドキュメントによると、タグが として言及されている場合、OR が維持され"@One,@Two"ます。この場合、最初のオプションと同じ方法で作業を除外しないのはなぜですか?

更新: このコードは scala で記述されています。

4

4 に答える 4

14

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

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

于 2015-02-09T20:37:44.367 に答える
1

1 つのタグを除外/無視する方法

(この回答は、1 つのタグを無視したい他のユーザーに役立ちます)

ターミナル:

mvn clean test -Dcucumber.filter.tags="not @one"

ジュニット:

@CucumberOptions(tags = "not @one")
于 2021-04-28T17:42:43.640 に答える
1

配列が気に入らない可能性はありますか、試してみてください:

@CucumberOptions(tags={"~@one,~@two"}, .....)
于 2015-02-09T19:33:27.600 に答える