4

一度ログインしてから、ブラウザを閉じる前にいくつかのシナリオ (たとえば 7 つのシナリオ) を実行したいと考えています。

各シナリオで Given i am login の代わりに Background を使用しましたが、シナリオが実行されるたびに最初にログインすることから始まるようです。

これは私のテストを遅くしています。

私がしたいこと:

ログインして同じブラウザ ウィンドウで複数のシナリオを実行し、完了したら閉じます。

4

1 に答える 1

5

あなたが探しているのはSpecflowフックです。

https://github.com/techtalk/SpecFlow/wiki/Hooks

バックグラウンドでステップとして「ログイン」を指定することはできません。代わりに、ログインする必要がある各シナリオにタグを付けます。

例:

@alreadyLoggedIn
Scenario: user can see XYZ
    Given...

@alreadyLoggedIn
Scenario: user can see ABC
    Given...

次に、BeforeFeature属性で装飾されたメソッド内で「ログイン」するためのコードを指定する必要があります。このメソッドは、機能内の任意のシナリオに対して1回だけ実行されます。

[BeforeFeature("alreadyLoggedIn")]
public void BeforeFeatureLoggedIn()
{
    // write code to log the person in
}

テストする必要のあるさまざまなユーザー/ロールがある場合は、個別のタグ(adminAlreadyLoggedIn、salesAlreadyLoggedInなど)を作成するだけです。

これがあなたを正しい道に導いてくれることを願っています!

于 2013-01-24T14:03:42.357 に答える