0

prodサーバーで実行されるprodテストを持つ機能があります。@prod というタグが付けられています。テスト環境で実行できる他のタグなしのテストがあります。

env.rb には、新しいブラウザーを開き、テスト環境で実行するようにテストをセットアップする Before do .. end があります。また、テスト ヘルパーを prod アカウントで実行するように設定する Before('@prod') ブロックもあります。

cucumber --tags @prod を使用して prod テストだけを実行すると、prod テストが実行されます。Before('@prod') のみが実行されることを期待しています。ただし、env.rb ファイル内の両方の BEfore ブロックが実行され、2 つの新しいブラウザー インスタンスが作成され、2 つ目のブラウザー ウィンドウで prod テストが実行されていることがわかります。7 つのシナリオのスイートが完了すると、タグ付けされていない Before からテスト util をセットアップする 7 つの空白の開いているブラウザー ウィンドウができます。

有効なテスト マーチャント アカウント # features/step_definitions/ConsumerPortal.rb:1 が与えられた場合

ログアウトしてブラウザを閉じるタグの後でも同じことが起こっているのがわかります。タグ付けされたものが最初に実行され、次にプレーンな After タグが実行されます。テストが env.rb Before に持っているタグを読み取ることができれば、それに応じてセットアップできます。これを行う方法はありますか?

4

1 に答える 1

0

before タグで否定タグを使用します。

@Before("~@prod")
@After("~@prod")

これにより、すべての @prod タグに対して Before タグと After タグが実行されなくなります。

または、一般的に、すべての @Before および @After メソッドが任意のタグに対して実行されます。

于 2013-06-13T21:42:52.153 に答える