Запуск и остановка chromedriver один раз за тестовую сессию - PullRequest
2 голосов
/ 22 марта 2012

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

1 Ответ

3 голосов
/ 23 марта 2012

Вы выходите из драйвера после каждого сценария, а не функции.Если вы изменили [AfterScenario] на [AfterFeature], вы получите некоторое увеличение производительности.Вы можете использовать [BeforeFeature] для настройки вашего веб-драйвера.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...