我们正在使用Intern为我们的应用程序运行一套功能性JavaScript测试,针对使用Vagrant启动的Ubuntu VM。
每个测试都会自行引导一个生成一些UI输出的数据文件。每个测试都是孤立地成功运行的。事实上,在许多情况下,测试也一起成功运行。
但是,我们偶尔会看到选择测试的失败。目前我们有16项测试正在针对Chrome和Firefox运行。在16个测试中可能有4个看到失败列表并不罕见。如果我将这些测试隔离到一个较小的套件中并重新运行该工具,则测试会再次成功通过。
现在,从理论上讲,测试是彼此独立的,每次运行时实际的故障数都会有所不同,所以我不认为故障是一个测试影响另一个测试。为测试提供平台的服务器在资源非常充足的机器上本地运行。
有没有办法编写测试或运行实习生的方法,这会给我们更可靠的结果?
答案 0 :(得分:0)
我们发现了什么导致我们的测试在作为套件一起运行时随机失败。我们的一个测试使用了修改键,如[Shift]和[Ctrl]。我们为WebDriver提供的有限文档说明了key命令:
按键(键可能在命令结束时仍然按下)。
似乎有时这个命令会使修改键被按下,因此在链中的下一个测试中处于活动状态。由于我们的其他一些测试使用[Tab]序列来访问某些页面元素,并且[Shift] [Tab]在页面中向后移动,我们的测试失败取决于它们在套件中的位置。
我们仍然存在与时间有关的问题,但随机故障的情况已被隔离到这个问题。