Как установить тайм-аут для тестового примера в cypress?

#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 .