Перезапуск устройства при сбое

#testing #automated-tests #e2e-testing #testcafe #web-testing

#тестирование #автоматизированные тесты #e2e-тестирование #testcafe #веб-тестирование

Вопрос:

Я написал тест, который проходит в 95% случаев, остальные 5% не выполняются. Я все еще не знаю, почему это не удается (я предполагаю, что компоненты отображаются некорректно).

Я реализовал вызов перезагрузки страницы, чтобы перезагрузить страницу и повторить попытку, но это не очень надежно.

Каков наилучший способ перезапустить устройство в случае сбоя?

Вот пример теста, который намеренно не эмулирует мой селектор, который работает большую часть времени, но иногда дает сбой.

 import { Selector } from 'testcafe';

const URL = 'https://www.youtube.com/watch?v=RWQtB6Xv01Q';

fixture `Portal Experience playback`
  .page `${URL}`;

test('Testing YouTube', async t => {
  await t.click(Selector('.wrong-selector')); // to emulate my unstable test
});
  

Приводит к

 ✖ Testing YouTube

   1) The specified selector does not match any element in the DOM tree.
  

Возможно ли поместить тест в цикл for и заставить его выйти из цикла в случае, если тест пройдет успешно?

Ответ №1:

Для этой цели служит режим карантина. В этом режиме TestCafe будет перезапускать неудачный тест снова, пока он не пройдет или не завершится с ошибкой 3 раза, и будет считать его неудачным, только если он завершится с ошибкой 3 раза. Получите более подробную информацию о режиме карантина в этой статье: Режим карантина.