Как бы я ни любил Cypress, это начинает получаться довольно плохо. Я не думаю, что я буду делать что-то в корне неправильно. Я пару раз читал лучшие практики и не вижу, что я мог бы улучшить на самом деле.
Это начинает разочаровывать. Если тесты отлично работают на локальном компьютере (пробовали запускаться несколько раз подряд), и все же, когда один и тот же код проходит через CI (в настоящее время - конвейеры Bitbucket), несколько тестов не выполняются по странным причинам.
Например, один клик по элементу в списке добавляет один элемент в корзину. Работает отлично, но я пытаюсь сломать его, и все же тот же тест в CI заставляет этот щелчок дважды происходить там по какой-то причине. И это одна проблема, которую я, по крайней мере, могу описать. Другие не в порядке, и очень часто это происходит случайным образом, так как этот элемент не виден, но, глядя на скриншот, я вижу это прекрасно.
Я пытался использовать плагин cypress-failed-log
для просмотра журнала команд, но это не очень помогает, потому что это то же самое, что я вижу локально, и все же он не работает в CI. Видео, которое я вижу в Cypress Dashboard, тоже не очень полезно, потому что обычно оно слишком быстрое, а некоторые вещи там даже не видны.
Может кто-нибудь посоветовать мне другие варианты того, как подойти к проблеме более изящно? Я должен признать, что я нахожусь на грани отказа от этих тестов, потому что просто требуется слишком много времени, чтобы сделать их надежными.
Некоторые подробности о моей настройке:
cypress-failed-log@2.5.0
cypress-testing-library@3.0.1
cypress@3.3.1
# job definition for running E2E tests in parallel
e2e: &e2e
name: E2E tests
image: cypress/browsers:chrome67-ff57
caches:
- yarn
- home-cache
script:
- yarn -v
- cd cypress
- yarn install --frozen-lockfile
- npx @bahmutov/print-env BITBUCKET
- yarn ci --parallel --ci-build-id $BITBUCKET_BUILD_NUMBER