0

我们正在使用 Intern 为我们的应用程序运行一套功能性 JavaScript 测试,针对使用 Vagrant 启动的 Ubuntu VM。

每个测试都使用生成一些 UI 输出的数据文件来引导自身。每个测试都独立成功地运行。事实上,在许多情况下,测试也一起成功运行。

但是,我们偶尔会看到选择的测试失败。目前,我们有 16 项针对 Chrome 和 Firefox 的测试。看到 16 项测试中可能有 4 项的失败列表并不罕见。如果我将这些测试隔离到一个较小的套件中并重新运行该工具,测试将再次成功通过。

现在,从理论上讲,测试是相互独立的,每次运行时实际失败的数量都会有所不同,所以我不认为错误是一个测试影响了另一个。为测试提供平台的服务器在资源充足的机器上本地运行。

有没有办法编写测试或运行 Intern 来给我们提供更可靠的结果?

4

1 回答 1

0

我们已经发现了导致我们的测试作为一个套件一起运行时随机失败的原因。我们的一项测试使用了修饰键,例如 [Shift] 和 [Ctrl]。我们为 WebDriver 提供的有限文档提到了 keys 命令:

按键(在命令结束时按键可能仍处于按下状态)。

似乎有时此命令会按下修改键,因此对于链中的下一个测试是有效的。由于我们的一些其他测试使用 [Tab] 序列来访问某些页面元素,并且 [Shift][Tab] 向后遍历页面,因此我们的测试失败取决于它们在套件中的位置。

我们仍然存在与时间有关的问题,但随机故障的情况已与此问题隔离开来。

于 2014-02-17T12:02:35.730 回答