불안정한 테스트 재시도하기
WebdriverIO 테스트러너를 사용하면 불안정한 네트워크나 경쟁 조건과 같은 이유로 불안정한 테스트를 다시 실행할 수 있습니다. (그러나 테스트가 불안정해진다고 단순히 재시도 횟수를 늘리는 것은 권장하지 않습니다!)
Mocha에서 스위트 재실행
Mocha 버전 3부터는 전체 테스트 스위트(describe
블록 내부의 모든 것)를 재실행할 수 있습니다. Mocha를 사용하는 경우 특정 테스트 블록(모든 it
블록 내부)만 재실행할 수 있는 WebdriverIO 구현 대신 이 재시도 메커니즘을 선호해야 합니다. this.retries()
메서드를 사용하기 위해, 스위트 블록 describe
는 Mocha 문서에 설명된 대로 화살표 함수 () => {}
대신 바인딩되지 않은 함수 function(){}
를 사용해야 합니다. Mocha를 사용하면 wdio.conf.js
에서 mochaOpts.retries
를 사용하여 모든 스펙에 대한 재시도 횟수를 설정할 수도 있습니다.
예시:
describe('retries', function () {
// 이 스위트의 모든 테스트를 최대 4번까지 재시도
this.retries(4)
beforeEach(async () => {
await browser.url('http://www.yahoo.com')
})
it('should succeed on the 3rd try', async function () {
// 이 테스트는 최대 2번까지만 재시도하도록 지정
this.retries(2)
console.log('run')
await expect($('.foo')).toBeDisplayed()
})
})