我有时会有1或2个在CI中失败的测试,并且重新运行构建会使它们通过。
我如何自动重新运行这些不稳定的测试,以便使我的构建第一次通过?是否有类似于mocha
的this.retries
的内容?
例如,我的测试以“元素的有效高度为0x0”失败,大约10%的时间失败:
cy.visit('/')
cy.get('.my-element').click() // sometimes fails with not visible error
官方提供对测试重试的支持,但是有一个插件。 cypress-plugin-retries
披露:我是插件的创建者。
将插件添加到devDependencies
cypress-plugin-retries
[C0的顶部:
npm install -D cypress-plugin-retries
使用环境变量cypress/support/index.js
设置重试编号:
require('cypress-plugin-retries')
或在规格文件中使用CYPRESS_RETRIES
:
CYPRESS_RETRIES=2 npm run cypress
<< [或在每个测试或每个挂接的基础上,设置重试编号:
注意:此插件,您应仅在此插件的上下文中访问它。添加Cypress.currentTest
Cypress.env('RETRIES')
注意:Cypress.env('RETRIES', 2)