如何在Cypress.io中多次运行测试

时间:2018-09-10 20:09:13

标签: unit-testing cypress

我有一个测试用例,用于修复X出现1次的错误。我想多次运行同一测试,但是找不到任何说明如何自动重新启动测试以及在达到阈值时停止测试的文档。任何见解都受到赞赏

5 个答案:

答案 0 :(得分:4)

我完全隔开了,并且忘记了这些是普通的JS文件,所以我将测试包裹在一个for循环中。这似乎按我的预期工作。

describe('Verify "Login" is visible', function() {
  it('finds the Login link in the header', function() {
    var i = 0;
    for (i = 0; i < 5 ; i++) { 
      //Place code inside the loop that you want to repeat
      cy.visit('https://www.example.com/page1')
      cy.get('.navbar').contains('Login').should('be.visible')
      cy.visit('https://www.example.com/page2')
      cy.get('.navbar').contains('Login').should('be.visible')
    }      
  })
})

答案 1 :(得分:1)

您还可以将循环放在describe / it对上方。这样,赛普拉斯Test Runner UI将为您显示该循环的每个不同实例的通过或失败。以我的经验,这是更好的方法。

答案 2 :(得分:0)

您可以将循环放置在外部空间中,而不是将循环放置在测试中,如下所示:

var i = 0;
for (i = 0; i < 3 ; i++) {     
  describe('Verify "Login" is visible. Test: '+i, function() {
    it('finds the Login link in the header', function() {

      //Place code inside the loop that you want to repeat

    })
  })
}

结果如下:

  • 验证“登录”是否可见。测试:0
  • 在标题中找到登录链接
  • 验证“登录”是否可见。测试:1
  • 在标题中找到登录链接
  • 验证“登录”是否可见。测试:2
  • 在标题中找到登录链接

答案 3 :(得分:0)

给你https://docs.cypress.io/guides/guides/test-retries#How-It-Works

您可以在配置文件(默认为 cypress.json)中配置它,方法是将 retries 选项传递给具有以下选项的对象:

runMode 允许您定义运行 cypress run 时的测试重试次数 openMode 允许你在运行 cypress open 时定义测试重试次数

{
  "retries": {
    // Configure retry attempts for `cypress run`
    // Default is 0
    "runMode": 2,
    // Configure retry attempts for `cypress open`
    // Default is 0
    "openMode": 0
  }
}

答案 4 :(得分:0)

可以在循环中添加测试块。 Cypress 与一些库捆绑在一起,lodash 可以使用:Cypress._.times 方法:

Cypress._.times(10, () => {
  describe('Description', () => {
    it('runs multiple times', () => {
      //...
    });
  });
});