Рубрики
Uncategorized

E2E Тестирование NetLify Развертывание превью

При работе на моих боковых проектах я считаю, что очень важно получить процесс прямой тестирования; с … Помечено devops, netlify, e2e, тестированием.

При работе на моих боковых проектах я считаю, что очень важно получить процесс прямой тестирования; Поскольку проекты могут быть нетронутыми в течение нескольких месяцев, я хочу убедиться, что все в порядке, когда я нажимаю новый код. Обычно я использую NetLify Развернуть мои сайты; Это бесплатно (план открытого исходного кода), легко интегрироваться с GitHub, и это дает мне Развертывание превью Для каждого запроса на тягу.

Поскольку E2E тестирование все о том, чтобы быть как можно ближе к «реальным» средам, которые я хочу, чтобы мои тесты прокончились против NetLifys развертывания превью вместо обслуживать Или некоторые другие локальные настройки сервера (на самом деле я нашли ошибки, которые были созданы только в производстве NetLifys).

NetLify создает развертывание превью, слушая новой PR’S. Я думал, что можно вместо этого можно было развернуть превью с CLI, а затем дождаться ответа, чтобы запустить мои тесты E2E. Что-то типа:

yarn netlify deploy && yarn e2e

Но кажется, что нет способа развертывания превью от NetLifys REST API. Также это возможно с их Входящие веб-капоны поэтому я должен был выяснить альтернативный способ.

Мост между сети NetLify и CI с AWS LAMBDA

Решить мою проблему, я добавил Исходящие веб -ook Кто называет URL-адрес после успеха. Я указал на веб-кальбул пользовательскую функцию aws лямбда, которую я позвонил NetLify-Travis-Integration Отказ NetLify-Travis-Integration Считывает URL-адрес предварительного просмотра развертывания из полезной нагрузки и запускает работу TRAVIS, чтобы запустить тестирование E2E.

Конфигурация TRAVIS

Поскольку я не смог найти способ запускать определенную работу TRAVIS, мне пришлось отличить мою нечестную необходимую работу от моих нужных рабочих мест с моим NetLify требуемых рабочих мест, проверив, запустил ли сборка API или нет:

jobs:
  include:
    - stage: lint
      if: type != api
      script: yarn lint
    - stage: test
      if: type != api
      script: yarn test:ci && codecov
    - stage: packtracker
      if: type != api
      script: yarn build
    - stage: lighthouse
      if: type = api
      script: yarn lh -- --perf=96 --bp=96 --no-comment $SITE_URL
    - stage: e2e
      if: type = api
      script: yarn e2e

Это немного уродливая, но я не мог найти лучший способ решить его при использовании TRAVIS. Я думаю, что это легче решить с Circleci, поэтому я предпочитаю выбрать это для моего следующего проекта.

Статусы GitHub

Чтобы отслеживать мои тесты E2E, я добавил веб-капуль к My TRAVIS Config, чтобы позволить ему позвонить еще одну функцию AWS Lambda. Эта функция проверяет, запущена ли задание TREVIS API, а затем создает статус запроса на тягу.

Вывод

После одного года и 100 запросов на потяну я доволен решением, и он поймал много ошибок, которые я пропустил. Особенно это удобно при использовании Ремонт Кто создает PR для обновлений зависимости, то легко выяснить, стоит ли что-то или нет.

Путь вперед

Я создал интеграцию NetLify-Travis-Integration, чтобы решить проблему, которую я имел, но в случае, если есть другие, которые хотели бы решить ту же проблему, это не очень легко сделать настройку; Вам необходимо создать учетную запись AWS, настройки AWS Permissions, настроить TRAVIS и NetLify, а также создать токен API GitHub. Это следует рассматривать как доказательство концепции. Может быть, я возьму следующий шаг и упрошу интеграцию с новыми проектами.

Как вы решаете эту проблему? Вы просто управляете своими тестами E2E на локальном веб-сервере?

NetLify-Travis-Integration

Оригинал: «https://dev.to/kontrollanten/e2e-testing-previews-with-netlify-travis-integration-3jop»