Cypress: прервать все тесты при первой неудаче - PullRequest
0 голосов
/ 07 мая 2020

Как прервать все тесты 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"

1 Ответ

1 голос
/ 08 мая 2020

Эта функция, о которой давно просили Cypress, по какой-то причине до сих пор не реализована. Сообщество предлагает некоторые обходные пути, однако не гарантируется, что они будут работать. Проверьте эту ветку на Cypress 'Github для получения более подробной информации, возможно, вы найдете обходной путь, который подойдет для вашего случая.

...