Pull to refresh

Tic Tac Toe, часть 7: pytest и Travis CI

Reading time2 min
Views2.6K
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.

Tags:
Hubs:
Total votes 6: ↑6 and ↓0+6
Comments2

Articles