Cypress-тесты локально зеленые, но не справляются с КИ - советы по отладке? - PullRequest
0 голосов
/ 15 июня 2019

Как бы я ни любил 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

Ответы [ 2 ]

0 голосов
/ 21 июня 2019

Cypress 3.3.0 утверждает, что исправляет медленные сетевые запросы. Это может иметь отношение к сбоям теста CircleCI.

В Cypress 3.1.4 @ danielschwartz85 сообщил, что они видели медленную работу сети при выполнении обычных запросов на выборку. Это было настолько плохо, что они сообщили о времени загрузки 5,5 секунд в Cypress, по сравнению с 300 мс в обычном браузере - HTTP-запросы в Cypress выполнялись в 18 раз медленнее, чем в Chrome для этого теста. Большая часть Cypress заключается в том, что он должен вести себя так же, как обычный веб-браузер, так что это было серьезной проблемой. Пользователи ожидают, что Cypress будет «вести себя как Chrome», а не «вести себя как Chrome, но в 18 раз медленнее». Итак, мы решили исследовать источник этой медлительности.

https://docs.cypress.io/guides/references/changelog.html

0 голосов
/ 20 июня 2019

Странно, вы используете тот же браузер, когда проводите локальный тест? Вы используете дополнительные пакеты npm, может быть, вы можете удалить все несущественные и повторить попытку?

...