0

私はSeleniumを使い始めたばかりです。現在、IEはイントラネットサイトであり、一般向けではないため、IEにのみ関心があります。ブラウザセッションの設定に使用IEDriverServer.exeしていますが、テストごとに再作成する必要があるのか​​、ブラウザセッション/テストのアトミック性を自動的に維持するのかがわかりません。ほとんどの例は単体テストのバッチではなく単一のテスト用であるため、これに関する情報を見つけることができませんでした。

だから現在私は持っています

[TestInitialize]
public void SetUp()
{              
   _driver = new InternetExplorerDriver();
}

[TestCleanup]
public void TearDown()
{
   _driver.Close();
   _driver.Quit();
}

これは正しいですか、それともテストごとに余分な不要な作業を行っていますか?宣言されたときに初期化する必要がありますか?もしそうなら、どのようにそのライフサイクルを管理しますか?.Close()ブラウザウィンドウを強制終了するために各テストを呼び出すことができると思いますが、どう.Quit()でしょうか。

4

1 に答える 1

1

私はNUnitでSeleniumを使用していますが、毎回再作成する必要はありません。MSTestを使用しているので、次のようにします。

[ClassInitialize]
public void SetUp()
{              
   _driver = new InternetExplorerDriver();
}

[ClassCleanup]
public void TearDown()
{
   _driver.Close();
   _driver.Quit();
}

ClassInitializeテストクラスの初期化ごとに1回ClassCleanupコードを呼び出し、テストクラスの分解/破棄ごとに1回コードを呼び出します。

テストランナーがテストの複数のスレッドを作成する可能性があるため、これはまだ保証されていません。

http://blogs.msdn.com/b/nnaderi/archive/2007/02/17/explaining-execution-order.aspx

また、毎回どのような状態でテストを開始するかを考える必要があります。毎回シャットダウンして新しいブラウザセッションを開始する最も一般的な理由は、クリーンな状態で作業できることです。

ご指摘のとおり、これが不要な作業になることもありますが、テストの出発点は何ですか?

私の場合、テストクラスごとに1つのブラウザーがあり、Webアプリケーションからサインアウトして、各テストの最後にログインページを保持するメソッドがあります。

于 2012-11-26T15:25:28.160 に答える