Как я могу изнутри во время выполнения angular2 обнаруживать, что я запускаю тестовый режим e2e? У меня есть интервал обновления сеанса, который я не хочу настраивать в режиме тестирования, чтобы избежать проблем синхронизации с транспортиром.Как обнаружить веб-приложение углового2 в тестовом режиме
Очевидным ответом будет поиск параметра URL. Есть ли менее грязное решение?
EDIT (разъяснение перед наградой): Протранслятор подключен к угловому (1 или 2) таким образом, что он будет ждать завершения всей выдающейся работы, прежде чем оценивать что-либо. Это означает, что все выдающиеся угловые promises
или любые активные угловые timer
будут проверять транспортиры (и в конечном итоге привести к их сбою). Наиболее часто предлагаемым решением является установка browser.ignoreSynchronization = true
, но это заставило бы меня либо вложить все тесты e2e в callback-цепочки, либо использовать кучу спальных сон. Возможно, и то, и другое. Таким образом, кажется, что я застрял между камнем и твердым местом, либо имея реальный опыт работы над сценарием e2e тестов, либо устанавливая условие вокруг конкретной строки кода приложения, которое не запускается, когда в «тестовом режиме» (eW, уродливый). Я предпочитаю иметь более простой тест e2e, поскольку я ожидаю записать их в сотни, и пока мы говорим только об одном интервале, который не критичен во время тестирования (30-минутный интервал для обновления сеанса).
Получение окружения от глобальных переменных (например, ENV) довольно распространено. – estus
Я использую 'browser.ignoreSynchronization = true' с Angular2 и не должен ждать, пока модели будут разрешены после изменения. Можете ли вы описать образец, когда 'browser.ignoreSynchronization = true' является проблемой и заставляет вас спать? –
@JuanmiRodriguez Каждый раз что-то асинхронное. Такие, как изменение «страницы» или выборка данных по сети. – Hampus