#testing #timeout #cypress #specifications #e2e
#тестирование #тайм-аут #cypress #технические характеристики #e2e
Вопрос:
Вот мои результаты тестирования
Время ожидания теста истекло, и его нельзя отобразить на панели мониторинга cypress. Как установить тайм-аут для каждого тестового примера в cypress?
Комментарии:
1. В этой спецификации нет результатов тестирования, поскольку время ожидания истекло.
Ответ №1:
Я не думаю, что вы можете. Насколько я вижу в документах, в настоящее время существуют тайм-ауты, которые вы можете настроить:
- тайм-аут команды по умолчанию
- тайм-аут exec
- тайм-аут задачи
- тайм-аут загрузки страницы
- тайм-аут запроса
- тайм-аут ответа
Ответ №2:
Пожалуйста, смотрите тайм-ауты Mocha,
Также могут применяться тайм-ауты, зависящие от конкретного теста, или использоваться
this.timeout(0)
для отключения тайм-аутов всех вместе.
it('should take less than 10 seconds', function() { // Note NOT arrow function
this.timeout(10000);
// test here
});
Это работает, потому что Mocha является неотъемлемой частью Cypress.
Попробуйте эти простые неудачные тесты, которые проходят Mocha done()
, но никогда не вызывают его. Они завершаются сбоем в момент, указанный тайм-аутом.
it('should take less than 500ms', function(done) {
this.timeout(500);
});
it('should take less than 2s', function(done) {
this.timeout(2000);
});
it('should take less than 5s', function(done) {
this.timeout(5000);
});
Комментарии:
1. похоже, это установка тайм-аута команды по умолчанию, а не установка тайм-аута для общей продолжительности теста.
2. @Idam — Нет, вы думаете о настройке конфигурации Cypress. Посмотрите на связанные документы для тайм-аутов Mocha, они ясно показывают, что этот шаблон предназначен для отдельных тестов.
3. Я согласен с тем, что говорится в документах Mocha, но мои собственные глаза видели, что использование
this.timeout(1000)
не завершило мой тест через 1 секунду, вместо этого команды продолжали выполняться после отметки в 1 секунду, и любая команда, которая заняла больше 1 секунды, завершилась неудачей, что и делает установка тайм-аута команды по умолчанию. Возможно, Cypress не соблюдает это должным образом?4. Если вы установите время ожидания теста равным 1000 мс и оставите время ожидания команды по умолчанию равным 4000 мс, команда не будет выполняться дольше времени ожидания теста, что логично, поскольку команда является частью теста. Если вы установите тайм-аут теста более 4000 мс, команды будут выполняться с увеличенным тайм-аутом, но это не влияет на значение по умолчанию, потому что следующий тест, у которого нет тайм-аута, использует настроенный
defaultCommandTimeout
.