У меня есть куча тестов на селен, которые выполняются как часть сценариев спецификаций. В настоящее время я запускаю и останавливаю 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();
}
}
}
Тесты выполнялись бы намного быстрее, если бы я мог создавать и выходить из хроматографа один раз за сеанс модульного теста, а не один раз за запуск функции.
Есть ли способ настроить nunit для запуска некоторого кода в конце каждого запуска?
Если я уберу вызов chromedriver.Quit()
, тогда:
- После выполнения моих тестов тестер Resharper вращается вечно, никогда не сообщая о том, что тестовый запуск завершен.
- Средство тестирования NUnit работает нормально, но после каждого сеанса тестирования оставляет окно работающего драйвера.
Было бы замечательно, если бы у меня был какой-то код, создающий хромедривер до запуска первого теста, и остановивший его после запуска последнего теста.
Обновление: изменено [BeforeScenario]
на [BeforeFeature]
- спасибо Ли за указание на это.