2012-03-02 7 views
1

私はNUnitでいくつかのSeleniumテストを書いて、きれいなテストデザイン(各テストで1つテスト)を保つために最善を尽くそうとしています。だからこのようなものがあるNUnit Selenium Structure

[TestFixture] 
public class SomeTest 
{ 
    IWebDriver driver; 

    [Setup] 
    public void Setup() 
    { 
     driver = new InternetExplorerDriver(); 
    } 

    [Test] 
    public void Test1() 
    { 
    } 

    [Test] 
    public void Test2() 
    { 
    } 

    [Teardown] 
    public void Teardown() 
    { 
     driver.Close(); 
    } 
} 

これは問題ありませんが、テストの数が増えるにつれて状況は非常に遅くなります。テストごとにブラウザ全体の起動と停止はボトルネックです。

最後のテストまでブラウザを開いたままにする方法はありますか?あるいは、より良いアプローチ/デザインでしょうか?

答えて

3

:これは器具全体に助けにはならない。もちろん、

[TestFixture] 
public class SomeTest 
{ 
    IWebDriver driver; 

    [TestFixtureSetUp] 
    public void Setup() 
    { 
     driver = new InternetExplorerDriver(); 
    } 

    [Test] 
    public void Test1() 
    { 
    } 

    [Test] 
    public void Test2() 
    { 
    } 

    [TestFixtureTearDown] 
    public void Teardown() 
    { 
     driver.Close(); 
    } 
} 

を、しかし、それでもなおパフォーマンスが向上する可能性があります。

+0

パーフェクト!サイドノート:これはVisual NUnit(Visual Studio用)では動作しませんが、デフォルトのNUnitテストランナー – prestomanifesto

+1

で期待どおりに動作します。TestDriven.NET、ReSharper、NCrunchともに動作します –

+0

実際にTestFixtureSetUpでTestFixtureSetupではなく、それらを編集しました修正する。 – Nuzzolilo

0

「test」という名前のメソッドを1つだけ作成できます。このテストメソッドには、他のメソッドを呼び出すことが含まれます(名前に 'test'は含まれません)。これらの他の方法はあなたのテストケースになります。 名前に 'test'を含むすべてのメソッドは、開閉ブラウザを生成します。上記のソリューションを使用すると、ブラウザを1回だけ開くだけで、すべてのテストケースを1度に1つずつ実行します。唯一のあなたは[TestFixtureSetUp] [TestFixtureTearDown]の代わりに、[設定]と[解体]を使用することができますフィクスチャごとにブラウザを起動するためには

関連する問題