У меня есть куча тестов селена, которые выполняются как часть сценариев specflow. В настоящее время я запускаю и останавливаю 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]
- спасибо Ли за указание на это.