Tic Tac Toe: содержание цикла статей
В этой статье рассмотрим Непрерывную Интеграцию/Сontinuous Integration на примере использования Travis CI.
Создайте аккаунт на GitHub, если у вас его еще нет. Создайте новый репозиторий с любым названием, например, test-travis.
Авторизуйтесь на Travis CI с помощью аккаунта GitHub. Выполните привязку аккаунта к аккаунту на GitHub. Выберите репозиторий test-travis.
На GitHub добавьте в репозиторий файл .travis.yml со следующим содержимым:
language: python
script:
- pytest
Travis CI автоматически начнет сборку проекта. В Travis CI через Dashboard переходим на страницу сборки проекта, наблюдаем за процессом сборки и смотрим на результат.
Видим, что ни одного теста не было выполнено, поскольку они просто отсутствуют в нашем репозитории.
Добавим тест test_sample.py в наш репозиторий на GitHub. Скопируем его отсюда.
# content of test_sample.py
def inc(x):
return x + 1
def test_answer():
assert inc(3) == 5
Переходим в Travis CI на страницу сборки проекта и видим, что процесс сборки начался. Тест, как и ожидалось, не прошел.
Исправляем test_sample.py, переходим в Travis CI на страницу сборки проекта, видим, что тест прошел.
Домашнее задание
Попробуйте взять проект из статьи Tic Tac Toe, часть 4: Взаимодействие с бэкендом на Flask с помощью HTTP. Можно просто выполнить форк с этого репозитория: https://github.com/nomhoi/tic-tac-toe-part4. Добавьте какие-нибудь тесты для Python и JavaScript скриптов, добавьте файл .travis.yml. Документация по настройке тестов для Python: https://docs.travis-ci.com/user/languages/python/, для JavaScript: https://docs.travis-ci.com/user/languages/javascript-with-nodejs/. Я тоже попробую и выложу ссылку на репозиторий здесь позже.
Заключение
Чтобы воспользоваться технологией непрерывной интеграции из всех наших телодвижений потребовалось добавить в репозиторий файл .travis.yml, авторизоваться на сервисе Travis CI и выбрать там репозиторий. В дальнейшем будут усилия только по правильной настройке конфигурационного файла .travis.yml.
Если разработчик один, то тесты можно выполнять и на своем локальном компьютере. Но если проект пишется командой, то удобнее выполнять тесты после каждого push'a в общий репозиторий. Тесты будут выполнены системой непрерывной интеграции автоматически после каждого push'a в общий репозиторий.
В следующих статьях рассмотрим Continuous Delivery.