2
我有一堆硒測試作爲specflow場景的一部分運行。我現在開始,每個功能停止ChromeDriver一次:每個測試環節啓動和停止一次chromedriver
[Binding]
public class WebBrowser
{
public static IWebDriver Current
{
get
{
if (!FeatureContext.Current.ContainsKey("browser"))
{
FeatureContext.Current["browser"] = new ChromeDriver();
}
return (IWebDriver)FeatureContext.Current["browser"];
}
}
[BeforeFeature]
public static void Close()
{
if (FeatureContext.Current.ContainsKey("browser"))
{
Current.Close();
((ChromeDriver) FeatureContext.Current["browser"]).Quit();
}
}
}
測試將運行得更快,如果我可以創建和單位測試會話中運行每個功能運行一次退出chromedriver,而不是一次。
有沒有辦法配置nunit在每次運行結束時運行一些代碼?
如果我刪除chromedriver.Quit()
呼叫,則:
- ReSharper的測試運行器運行我的測試中從未報告試運行爲完成後,永遠地旋轉。
- NUnit測試運行器工作正常,但在每次測試會話運行後都會保留一個正在運行的驅動程序窗口。
如果我可以讓一些代碼在第一次測試運行之前創建chromedriver並在最後一次測試運行之後停止它,那將會很棒。
更新:將[BeforeScenario]
更改爲[BeforeFeature]
- 感謝李的指出。
謝謝李,原來的問題仍然存在,但解決這個問題確實提高了速度。 – Brownie 2012-03-26 22:53:30
這是正確的答案。你應該在[AfterFeature]中退出,正如這個答案指出的那樣。 – 2012-03-27 12:56:26