Как я могу повторить неудачный тест? - PullRequest
0 голосов
/ 13 февраля 2019

Иногда у меня будет 1 или 2 теста, которые не пройдены в CI, и повторный запуск сборки заставит их пройти.

Как я могу автоматически повторно запустить эти нестабильные тесты, чтобы моя сборка прошла в первый раз?Есть ли что-то похожее на mocha this.retries?

Например, у меня есть тест, который не проходит с «Элемент имеет эффективную высоту 0x0» примерно в 10% случаев:

cy.visit('/')
cy.get('.my-element').click() // sometimes fails with not visible error

1 Ответ

0 голосов
/ 13 февраля 2019

Официальная поддержка повторных тестов уже в пути, но для этого есть плагин.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) мокко внутри теста:

Примечание: необходимо использовать функцию (), а не стрелки () => {}

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

Примечание: Пожалуйста, обратитесь к этой проблеме для получения обновлений об официальной попытке Cypressподдержка

...