有时候我会有1或2个测试在CI中失败,并且重新运行构建会使它们通过。
我该如何自动重新运行这些不稳定的测试,以便我的构建可以第一次通过?是否有与let initials = title.match(/\b([a-zA-Z]|\d+)/g);
的{{1}}类似的东西?
例如,我有一个测试失败,大约10%的时间显示“元素的有效高度为0x0”:
mocha
答案 0 :(得分:2)
正在对测试重试提供官方支持,但是有一个插件。 cypress-plugin-retries
公开:我是插件的创建者
将插件添加到devDependencies
this.retries
在cy.visit('/')
cy.get('.my-element').click() // sometimes fails with not visible error
的顶部:
npm install -D cypress-plugin-retries
使用环境变量cypress/support/index.js
设置重试编号:
require('cypress-plugin-retries')
或在规范文件中使用CYPRESS_RETRIES
:
CYPRESS_RETRIES=2 npm run cypress
或在测试中使用摩卡咖啡的Cypress.env('RETRIES')
:
注意:必须使用function()表示法,而不是箭头()=> {}
Cypress.env('RETRIES', 2)
注意:Please refer to this issue for updates about official cypress retry support
答案 1 :(得分:1)
Cypress 5现在具有重试的本机支持。检查:https://cypress.io/blog/2020/08/19/introducing-test-retries-in-cypress-5-0
答案 2 :(得分:1)
要重试,可以按如下所示将其添加到配置中
{
"retries": {
// Configure retry attempts for `cypress run`
// Default is 0
"runMode": 2,
// Configure retry attempts for `cypress open`
// Default is 0
"openMode": 0
}
}
但我不想添加上面的内容,而是添加(运行和打开模式均适用)
“重试”:1
要考虑的重点