#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
.