Данная статья будет полезна, как и тем, кто только начинает осваивать тестирование своего кода, так и тем, кто использует тесты в подседневной работе. Сегодня мы научимся автоматизировать этот процесс используя сервис Travis CI.
Покрытие кода тестами - это безусловно хорошо, но как показывает практика, на их запуск тратится довольно много времени, а иногда они вообще не запускаются, хотя должны и т.д.
Для устранения этих недочетов существует методология Непрерывной интеграции (CI - Continuous Integration)...
и все, что нам осталось, это собственно разобраться как бы все это дело развернуть и подешевле. Для этого нам понадобится два инструмента:
Travis-CI отлично интегрирован с Github, достаточно лишь авторизоваться вашим github аккаунтом.
Итак вы готовы. Приступим:
Примером файла настроек может послужить эта ссылка.
Загрузите ваш код с тестами на github. Для тестов подойдут встроенные в хакс haxe.unit, utest, buddy, munit и другие (хотя с другими могут быть и проблемы, но это тема отдельной статьи).
Открываете профиль в travis и активируете хуки для вашего репозитория. Для этого необходимо “поставить галочку” напротив нужного репозитория (ниже для bindx2 включен)
Рядом с “галочкой” есть кнопка с ключиком, по клику на которую откроются дополнительные настройки. Их не много, но я обычно активирую первую опцию “Build only if .travis.yml is present”. Ниже, есть опция, для сборки всех Pull Request-ов, что тоже очень полезно для активно разрабатываемых библиотек.
Для интеграции travis-ci с нашим хакс кодом мы воспользуемся готовым решением travis-hx. Он отлично документирован, но даже в нем есть пара нюансов. Главное, что он из коробки работает на linux и osx и позволяет тестировать все возможные таргеты хакса (более 10). Ознакомтесь с документацией по ссылке и переходите к файлу, который надо скопировать себе в репозиторий, под именем “.travis.yml”. Но не спешите коммитить его!
travis.yml почти готов для работы, но надо изменить пару строк:
- HXFLAGS="-cp src -main test.TestAll" ~/travis-hx/build.sh
Коммитите фаил .travis.yml и идете на главную travis-ci, где в списке слева появится ваш репозиторий. По клику на который, вы сможете проследить за этапом сборки и запуска тестов, а также просмотреть историю сборок.
На этом все. Travis будет прележно прогонять тесты после каждого коммита и оповещать вас по почте о проделанной работе. Можно еще утащить себе картинку с состоянием билда, что тоже полезно. Ну а в будущем настроить дополнительные интеграции с другими сервисами при необходимости. Результат всех ваших действий, должен быть аналогичен этому.
Конечно travis-ci не пишет за вас тесты, а лишь запускает уже написанные, но он все равно экономит кучу времени и работает совершенно бесплатно для open source проектов.
Но не стоит останавливаться и на этом, travis-ci поддерживает сборку и тестирование только под linux и macos окружением, кроме него есть такие сервисы как https://saucelabs.com/ - позволяющий проверить работу вашего кода в овер 400 комбинация браузеров и ОС, или http://www.appveyor.com/ для сборки и тестирования на windows. Тем более, что travis-hx имеет поддержу всех этих сервисов из коробки!
Отдельная благодарность Сергею Мирянову, SlavaRa и Александру Кузьменко за помощь в написании статьи.
Дополнительный материал: