Cypress:首次失败时中断所有测试

问题描述 投票:0回答:1

如何在第一次测试失败时中断所有赛普拉斯测试?

我们正在使用信号量针对每个PR与Cypress一起启动完整的e2e测试。但这需要太多时间。

我想在第一次测试失败时中断所有测试。

获得完整的错误是每个开发人员的工作。我只想尽快通知部署是否有任何问题,而不必等待完整的测试完成。

到目前为止,我想出的唯一解决方案是使用赛普拉斯中断当前规范文件上的测试。

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

但是这还不够,因为它仅中断位于规格文件上的测试,而不中断所有其他文件。我今天在此问题上进行了深入的搜索,在Cypress上似乎并不是一件容易的事。

所以我正在尝试其他解决方案。

1:带有信号灯

fail_fast:
  stop:
    when: "true"

应该在出错时中断脚本。但这是行不通的:测试在出现错误后仍继续运行。我的猜测是,只有在所有测试完成后,赛普拉斯才会抛出错误。

2:也许是因为脚本启动了Cypress,但我没有主意现在这是我的脚本]

"cy:run": "npx cypress run",
"cy:run:dev": "CYPRESS_env=dev npx cypress run",
"cy:test": "start-server-and-test start http-get://localhost:4202 cy:run"
semaphore cypress e2e-testing
1个回答
0
投票

由于某些原因,这是赛普拉斯长期以来要求的功能,至今尚未引入。社区提出了一些解决方法,但是不能保证它们会起作用。 Check this thread on Cypress' Github for more details, maybe you will find a workaround that works for your case.

© www.soinside.com 2019 - 2024. All rights reserved.