2012-03-02 42 views
1

我想用NUnit編寫一些Selenium測試,並盡我所能保持一個乾淨的測試設計(測試每個測試的一件事)。所以我有這樣的事情NUnit Selenium結構

[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

爲了只彈出每個燈具的一個瀏覽器,您可以用[TestFixtureSetUp] [TestFixtureTearDown]而不是[設置]和[TearDown中]:

[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 2012-03-02 17:19:08

+1

它也適用於TestDriven.NET,ReSharper和NCrunch – 2012-03-02 22:23:05

+0

它實際上是TestFixtureSetUp而不是TestFixtureSetup,我編輯了那些修理。 – Nuzzolilo 2012-04-19 21:38:10

0

您可以在其名稱中使用'test'作爲一種方法。該測試方法將包含調用其他方法(名稱中不包含「測試」)。那些其他的方法將會是你的測試用例。 名稱中含有'test'的每種方法都會導致打開和關閉瀏覽器。通過使用上述解決方案,您只需打開一次瀏覽器,即可一次完成所有測試案例。

相關問題