2016-11-21 12 views
0

私はキュウリの枠組みで新しいです。私はjavaでキュウリを使ってログインシナリオを自動化しています。ステップ定義ファイルキュウリでフックを使用するには?

enter image description here

そして、以下の通りです - -

enter image description here

は、私はすべてのシナリオ(同じのために実装する方法)とtearDown()前に一度setUp()メソッドを実行したかった後には、私の機能ファイルですメソッドをすべてのシナリオの後に実行します。私はキュウリ@Before@Afterフックを使っています(正しい方法ではないかもしれません)。

しかし、私はこれらを使用していない前と同じ結果を見ています。 4つのシナリオすべてに対して、ブラウザのインス​​タンスを1つずつ開き、実行します。 1つのブラウザインスタンス(すべてのシナリオでsetUp()メソッドを1回呼び出す)でこれらのシナリオを実行する方法はありますか?

答えて

1
@Before 
public void setup() { 
    if (driver == null) { 
     ...//What you have 
    } 
    driver.manage().deleteAllCookies(); 
} 

@Afterフックでブラウザを終了しないでください。

+0

キュウリは、シナリオごとにステップ定義とフッククラスの新しいインスタンスを作成します。したがって、ドライバ変数は常に最初はnullになります。 – Grasshopper

+0

静かにしないと.... – MikeJRamsey56

+0

@グラスホッパー私はこれをいつもやっています。フィーチャファイルの最後のシナリオにはタグ@quitがあります。 '@After(" @quit ")public void browser_quit(){driver.quit;} – MikeJRamsey56

0

必要なものは、シナリオ間で共有され、すべてのシナリオが実行されるまで閉じることのないウェブドライバです。 Webdriverのインスタンスを静的変数に格納し、インスタンスにシャットダウンフックを追加することで、これを行うことができます。

はあなたに、このようなドライバクラスを与え、このを見てください - SharedWebDriver

あなたは、このようなPicoContainerなどDIコンテナとそれを使用する場合は、コンストラクタでドライバーを注入することができます。そうでなければ、インスタンスを作成できます。

また、複数のログインシナリオを縮約するには、ScenarioOutlineを参照する必要があります。

関連する問題