Перезапустите прибор, если он не работает - PullRequest
2 голосов
/ 01 апреля 2019

Я написал тест, который проходит 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 Ответ

3 голосов
/ 03 апреля 2019

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

...