代码之家  ›  专栏  ›  技术社区  ›  kuceb

如何重试失败的测试?

  •  0
  • kuceb  · 技术社区  · 6 年前

    我有时会有1到2个测试在ci中失败,而重新运行构建会使它们通过。

    如何自动重新运行这些不稳定的测试,以便我的构建在第一次通过?有类似的东西吗 mocha this.retries ?

    例如,我有一个测试失败,“元素的有效高度为0x0”大约有10%的时间:

    cy.visit('/')
    cy.get('.my-element').click() // sometimes fails with not visible error
    
    1 回复  |  直到 6 年前
        1
  •  2
  •   kuceb    6 年前

    官方对测试重试的支持正在进行中,但是有一个插件可以实现这一点。 cypress-plugin-retries

    描述:我是插件的创建者

    安装

    将插件添加到devdependencies

    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') 在规范文件中:

    Cypress.env('RETRIES', 2)
    

    或者用摩卡咖啡 this.retries(n) 测试内部:

    注意:必须使用function()表示法,而不是arrows()=>{}

    it('test', function() {
        this.retries(2)
    })
    

    注: Please refer to this issue for updates about official cypress retry support