Как прервать все тесты Cypress при первом сбое теста?
Мы используем семафор для запуска полных тестов e2e с Cypress для каждого PR. Но это занимает слишком много времени.
Я бы хотел прервать все тесты при первом провале теста.
Получение полных данных об ошибках - это дело каждого разработчика, когда они развиваются. Я просто хочу быть проинформирован как можно скорее, если что-то не так до развертывания, и мне не нужно ждать завершения полных тестов.
Пока что единственным решением, которое я придумал, было прерывание тестов на текущий файл spe c с помощью Cypress.
afterEach(() => {
if (this.currentTest.state === 'failed') {
Cypress.runner.end();
}
});
Но этого недостаточно, поскольку он прерывает только тесты, расположенные в файле spe c, а не ВСЕ другие файлы. Сегодня я провел несколько интенсивных поисков по этому поводу, и похоже, что это не так на Cypress.
Поэтому я пробую другие решения.
1: с Semaphore
fail_fast:
stop:
when: "true"
Предполагается прерывание скрипта в случае ошибки. Но это не работает: тесты продолжают работать после ошибки. Я предполагаю, что Cypress выдаст ошибку только тогда, когда все тесты будут завершены.
2: возможно, с запуском скрипта Cypress, но у меня нет идей Прямо сейчас вот мои скрипты
"cy:run": "npx cypress run",
"cy:run:dev": "CYPRESS_env=dev npx cypress run",
"cy:test": "start-server-and-test start http-get://localhost:4202 cy:run"