我正在尝试按照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] 删除。
我来说两句