如何在Cypress中为测试用例设置超时时间?

4

以下是我的测试结果 enter image description here

测试超时,无法在Cypress仪表板中显示。 如何为每个测试用例设置超时时间?


这个规格没有任何测试结果,因为它超时了。 - Sang Mai
2个回答

2
请参阅Mocha超时

还可以应用特定于测试的超时,或使用this.timeout(0)来完全禁用超时。

it('should take less than 10 seconds', function() {  // Note NOT arrow function
  this.timeout(10000);
  // test here
});

这有效是因为Mocha在Cypress中发挥了重要作用。


尝试这些简单的失败测试,它们通过Mocha done()但从未调用它。它们会在指定的超时时间内失败。

it('should take less than 500ms', function(done) {
  this.timeout(500);
});

it('should take less than 2s', function(done) {
  this.timeout(2000);
});

it('should take less than 5s', function(done) {
  this.timeout(5000);
});

这似乎是设置默认命令超时时间,而不是为整个测试的持续时间设置超时时间。 - ldam
@Idam - 不,你正在考虑Cypress配置设置。查看Mocha超时的链接文档,它们清楚地显示此模式适用于单个测试。 - Richard Matsen
我同意这是 Mocha 文档所说的,但我的双眼亲眼看到使用 this.timeout(1000) 并没有在 1 秒后结束我的测试,相反,命令继续运行超过了 1 秒的标记,并且任何花费超过 1 秒的命令都会失败,这正是设置默认命令超时所做的。也许 Cypress 没有正确地遵守这个规定? - ldam
1
如果您将测试超时设置为1000毫秒,并将默认命令超时保留在默认的4000毫秒,则该命令不会运行超过测试超时,这是合理的,因为该命令是测试的一部分。如果您将测试超时设置为大于4000毫秒的时间,则命令确实会运行到增加的超时时间,但它不会影响默认值,因为下一个没有超时的测试将使用配置的“defaultCommandTimeout”。 - Richard Matsen

0

我认为你不能这样做。就我在文档中看到的,目前可以设置以下这些超时时间:

  • 默认命令超时
  • 执行超时
  • 任务超时
  • 页面加载超时
  • 请求超时
  • 响应超时

慢速测试阈值 - djangofan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接