赛普拉斯重试使测试始终通过

我正在尝试按照https://docs.cypress.io/guides/guides/test-retries#How-It-Works使用 Cypress(在 7.6.0)重试功能

但由于某种原因,它似乎不起作用,因为一个保证总是失败的测试:

describe('Deliberate fail', function() {
    it('Make an assertion that will fail', function() {
        expect(true).to.be.false;
    });
});

当在配置重试设置为 1 的情况下从命令行运行时,

npx cypress run --config retries=1 --env server_url=http://localhost:3011 -s cypress/integration/tmp/deliberate_fail.js

它似乎通过了,唯一暗示正在重试某些内容的是文本“Attempt 1 of 2”以及已制作屏幕截图的事实:

在此处输入图片说明

运行中的统计数据看起来也不合逻辑:1 次测试 0 次通过 0 次失败 1 次跳过(但在摘要中并未显示为已跳过)

将“重试”选项放入 cypress.json 时的行为完全相同,无论是作为单个数字还是作为 runMode 或 openMode 的选项。

在“开放”模式下,测试不会重试而只是失败。

我猜我做错了什么,但是什么?

找到原因 .. 解决了当其中一个测试步骤(it() 步骤)失败时赛普拉斯不会中止规范文件的问题,我有解决这个非常古老的问题的方法https://github.com/cypress -io/cypress/issues/518 已实现

//
// Prevent it just running on if a step fails
// https://github.com/cypress-io/cypress/issues/518
//

afterEach(function() {
    if (this.currentTest.state === 'failed') {
        Cypress.runner.stop()
    }
});

这意味着 describe() 将在失败时停止,但显然不能很好地与重试配合使用。

我真正希望的用例是在 describe() 级别重试,但这可能会很昂贵,因为上述问题刚刚解决,但该解决方案仅适用于商业计划中的人员,每月 300 美元。https://github.com/cypress-io/cypress/issues/518#issuecomment-809514077

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章