2017-02-13 12 views
5

私はNUnitを使っていくつかのSeleniumテストを実行しています。何が起こっているのは、各灯具が終了した後に[OneTimeSetUp][OneTimeTearDown]が実行されていることです。私が望むのは、テストが開始されると[OneTimeSetUp]を1回実行し、すべてのフィクスチャが終了したらティアダウンを実行することです。すべてのテストに[OneTimeSetup]を使用できますか?

TestBaseClass.cs

public class TestBaseClass 
{ 

    [OneTimeSetUp] 
    public void Init() 
    { 
     // Login 
    } 

    [OneTimeTearDown] 
    public void TearDown() 
    { 
     Driver.Close(); 
    } 
} 

NavigationTests

[TestFixture] 
public class NavigationTests : TestBaseClass 
{ 
    // Tests 
} 

MainPageTests

[TestFixture] 
public class MainPageTests : TestBaseClass 
{ 
    // Tests 
} 

答えて

8

OneTimeSetUpAtトリビュートには2つの用途があります。

最初に、テストフィクスチャ内のメソッドをマークします。テストフィクスチャ内のメソッドは、そのフィクストラー内の他のテストの前に1回実行されます。基本クラスから継承して、それを使用する方法です。継承のおかげで、OneTimeSetUpは、派生のフィクスチャの各に表示されますが、各フィクスチャに対して1回、複数回実行されます。

2回目の使用は、SetUpFixtureです。特定の名前空間にSetUpFixtureを作成すると、OneTimeSetUpメソッドはその名前空間の他のテストの前にを一度実行します。 SetUpFixtureを任意の名前空間の外部に作成すると、OneTimeSetUpはを一度実行してからアセンブリ内のテストを実行します()。

SetUpFixtureの詳細については、docsを参照してください。

関連する問題