首页 > 解决方案 > 失败时重新启动夹具

问题描述

我写了一个测试,它通过了 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 循环中,并在测试通过时让它跳出循环?

标签: testingautomated-testse2e-testingtestcafeweb-testing

解决方案


隔离模式用于此目的。在这种模式下,TestCafe 将再次重新启动一个失败的测试,直到它通过或失败 3 次,只有失败 3 次才认为它失败。在本文中获取有关隔离模式的更多详细信息:隔离模式


推荐阅读