5

バックグラウンド セクションに数分かかる機能があります。API を介してリモート システムの状態を設定しています。すべてのシナリオで実行するのではなく、後続のすべてのシナリオで一度だけ実行したいと思います。私のシナリオは状態を変更しません。それらは読み取り専用であるため、あるシナリオから別のシナリオへの副作用はありません。

私はレールを使用しておらず、ローカル データベースも持っていないため、データベース トランザクションを処理できません。

私は現在、env.rb の Before で何かをすることを考えており、タグの暗黙の規則/意味に基づいた条件付きコードを用意することを考えています。ステップ定義で異なるロジックを実行できますが、実行間でこれを共有しようとするのは少し面倒です。

考え?

4

2 に答える 2

2

これは実際には解決しませんが、その状況で私が行うことは次のとおりです。

1 つのシナリオに進み、コメントでさまざまな「シナリオ」にラベルを付けるだけです。追加のシナリオ ヘッダーをコメント アウトするだけで、まさにそのようになります。

2 番目のシナリオをコメントアウトし、最初の機能の最後にテストの状態を実行する例を次に示します。

Feature: Admin can manage organizations
  In order to ...

Scenario: can add
  When I log into the admin
  When I follow "Organizations"
  When I follow "Add"

  When I fill in "Email" with "red@cross.com"
  When I fill in "Name" with "Red Cross"
  When I press "Save"
  Then I should see "success"

# Scenario: can edit
  When I follow "Red Cross"
  When I fill in "Name" with "Green Cross"
  When I press "Update"

  Then I should see "success"
于 2011-12-13T14:26:10.347 に答える
0

シナリオごとにバックグラウンドを実行したくない場合は、バックグラウンドではありませんね。

Cucumber シナリオを実行するたびにリモート サービスを呼び出す場合は、そうしないでください。代わりに、http://marnen.github.io/webmock-presentation/webmock.html で説明されているように、Webmock と VCR を使用してください。テストはより速く、より正確になります。

于 2013-08-05T20:33:02.473 に答える