2015-04-01 20 views
0

我正在使用FluentAutomation和MSTests。我需要能夠在同一個類中的多個測試方法中重用瀏覽器實例。例如,構造函數或TestInitialize方法將登錄到一個url,然後該類中的所有後續Test方法將需要使用相同的登錄會話和瀏覽器實例。使用具有MSTests的FluentAutomation在同一班級的多個測試中重複使用瀏覽器實例

嘗試使用FluentSession.EnableStickySession();但那不起作用,並且執行中的第二種方法表示IEDriver已被另一個進程使用。

任何想法如何解決這個問題?

下面是場景中的示例代碼:創建任何瀏覽器之前

[TestClass] 
    public class DummyTests : FluentTest 
    { 
    public DummyTests() 
    { 
     SeleniumWebDriver.Bootstrap(SeleniumWebDriver.Browser.InternetExplorer); 
     I.Open(@"http://google.com"); 
     FluentSession.EnableStickySession(); 
    } 

    [TestMethod] 
    public void First() 
    { 
     I.Wait(2) 
     .Enter("NBA").In("input#lst-ib.gsfi") 
     .Click("button[type='submit']"); 

    } 

    [TestMethod] 
    public void Second() 
    { 
     I.Wait(2) 
     .Enter("MLB").In("input#lst-ib.gsfi") 
     .Click("button[type='submit']"); 
    } 
    } 
+0

由於MsTest不保證執行順序,也不排除並行測試的執行,所以這是非常危險的。 – jessehouwing 2015-04-01 20:12:49

+0

不是真的,使用測試設置,我們可以一次將執行限制爲1。只要測試用例彼此獨立,並且不依賴於另一個先運行,順序也無關緊要。 – Vin 2015-04-01 23:26:23

回答

1

呼叫EnableStickySession。大多數用戶在一個通用的init/TestInitialize/ClassInitialize中執行它。

+0

就是這樣。我在bootstrap之後調用它,我認爲這是問題。感謝您指出。 – Vin 2015-04-02 16:04:53

相關問題