是否有可能在一個燈具中有多個[SetupTest]?不同配置的多個[SetupTest]
我正在使用Selenium和nUnit,並希望能夠指定用戶想要測試的瀏覽器。
我有一個簡單的用戶GUI來選擇測試運行,但是,我知道將來我們希望將它掛鉤到巡航控制以自動運行測試。理想情況下,我想要在我們的GUI和NUnit GUI上運行的測試。
是否有可能在一個燈具中有多個[SetupTest]?不同配置的多個[SetupTest]
我正在使用Selenium和nUnit,並希望能夠指定用戶想要測試的瀏覽器。
我有一個簡單的用戶GUI來選擇測試運行,但是,我知道將來我們希望將它掛鉤到巡航控制以自動運行測試。理想情況下,我想要在我們的GUI和NUnit GUI上運行的測試。
我懷疑你可以使用NUnit 2.5中引入的參數化測試來做你想做的事情,但我並不完全清楚你想在這裏做什麼。但是,你可以定義夾具,並將它帶在其構造一個瀏覽器變量,然後使用參數化的TestFixture屬性,如
TextFixture["Firefox"]
TestFixture["Chrome"]
public class ParameterizedTestFixture {
//Constructor
public ParameterizedTestFixture(string Browser) {
//set fixture variables relating to browser treatment
}
//rest of class
}
見NUnit Documentation獲取更多信息。
Setup屬性標識在每次測試之前運行的方法。只有每個測試夾具有一個安裝程序纔有意義 - 在每次測試運行之前將其視爲「重置」或「準備」。
是否有可能在夾具中有多個[SetupTest]?編號
可以在基類中定義所有測試,讓多個Fixture繼承測試,然後在運行時選擇一個與環境相關的fixture類型。
下面是我用於[TestFixtureSetup]的庫存示例。相同的原理適用於所有設置屬性。請注意,我只將[TestFixture]放在子類上。由於基礎「TestClass」沒有完整的設置代碼,因此不需要直接運行測試。
public class TestClass
{
public virtual void TestFixtureSetUp()
{
// environment independent code...
}
[Test]
public void Test1() { Console.WriteLine("Test1 pass."); }
// More Environment independent tests...
}
[TestFixture]
public class BrowserFixture : TestClass
{
[TestFixtureSetUp]
public override void TestFixtureSetUp()
{
base.TestFixtureSetUp();
// environment dependent code...
}
}
[TestFixture]
public class GUIFixture : TestClass
{
[TestFixtureSetUp]
public override void TestFixtureSetUp()
{
base.TestFixtureSetUp();
// environment dependent code...
}
}