Codeship с Testim.io — Тестирую ли я свою последнюю версию?

#testing #continuous-integration #codeship #testim.io

#тестирование #непрерывная интеграция #codeship #testim.io

Вопрос:

Извините за глупый вопрос, но я не смог найти ответ на этот.

Codeship Testim.io Heroku.

В моей промежуточной среде — я использую Testim.io чтобы протестировать приложение после его развертывания.
Следующий учебник показывает мне, как вызывать мои тесты — но я вижу, что тесты вызываются ДО развертывания нового приложения — так не тестируется ли одна версия перед моей последней? Я ожидал, что тесты будут выполняться после развертывания.
Возможно, я здесь чего-то не хватает.

введите описание изображения здесь

Ответ №1:

В этом руководстве — тесты не должны выполняться с вашей развернутой версией, они должны выполняться с тестируемой версией.

Поток:

  • Вы настраиваете локальную среду — например, просматриваете свой код и запускаете npm start . Если она контейнерная, сделайте это.
  • Вы запускаете Testim CLI и указываете его базовый URL на local как testim --token ... --project ... --suite ... --base-url=localhost:PORT .
  • После прохождения тестов выполняется развертывание.

Если вы тестируете версию после развертывания, вы не можете быть уверены, что развернутая версия действительно проходит ваши тесты.

Альтернативным потоком было бы использовать модель развертывания Heroku. Обратите внимание, что на самом деле это не относится конкретно к ним, и в aws / azure / gcp / whatever есть аналогичные альтернативы:

  • В вашем CI вы настроили промежуточную среду в heroku heroku create --remote staging-BRANCH-NAME-<COMMIT-NAME>
  • Вы развертываете там.
  • Вы запускаете тесты в этой среде (передавая —base-url в Testim CLI, переходя туда в своем тесте или используя файл конфигурации)
  • Когда тесты пройдут, вы выполняете развертывание в master

Комментарии:

1. Спасибо за ответ — итак, мне интересен 2-й сценарий — как мне автоматизировать этот поток и запустить тесты после развертывания (с CodeShip)? Или есть другие альтернативные фреймворки, более подходящие для моих нужд?

2. CodeShip в порядке, он так же хорош, как и любой другой CI здесь. Heroku CI делает это немного проще, но все равно. Вы автоматизируете этот поток, запустив heroku create внутри своего CI (посмотрите на ссылку), а затем установите --base-url в testim URL, с которого вы получили ответ heroku create .