Я расскажу о том, как настроить автоматический запуск модульных тестов в сервисе Travis CI для .NET Core проекта, в котором используется PostgreSQL. Можно использовать эту статью как пример для быстрого старта.  У меня есть хобби-проект — инструмент для версионной миграции БД на .NET Core. Он умеет работать с несколькими СУБД, в том числе, с PostgreSQL. В проекте есть некоторое количество тестов (xUnit), которым для работы тоже нужен PostgreSQL. Я много слышал про Travis CI и давно хотел настроить в нем автоматический запуск тестов, но меня останавливало две вещи:  Потратив пол дня на изучение документации и эксперименты, я настроил тесты и хочу рассказать вам об этом.  Travis CI — это continuous integration сервис для проектов на Github. Когда вы коммитите что-то в репозиторий, Travis CI может автоматически выполнять разные полезные действия. Например, он может запускать модульные тесты и линтеры кода. Я буду называть эти полезные действия словом "сборка" ("build"). Чтобы настроить Travis CI для своего репозитория, нужно указать адрес репозитория в веб-интерфейсе Travis CI и положить в корень проекта файл .travis.yml с настройками сборки.  Первое, что нужно сделать — залогиниться на сайте https://travis-ci.org, используя свой GitHub аккаунт. После этого вы увидите список всех своих репозиториев. Нажмите на переключатель напротив репозитория, для которого нужно включить интеграцию с Travis:  Далее перейдите в настройки выбранного репозитория. Здесь вы можете настроить, в каких случаях нужно запускать сборку. Я указал, что сборку нужно запускать при каждой операции Push в репозиторий, а также при создании или изменении Pull request. Кроме того, я указал, что сборку нужно запускать только если в корне репозитория есть конфигурационный файл .travis.yml.  Следующий шаг — добавление в репозиторий файла .travis.yml с настройками сборки. Для сборки проекта на .NET Core файл .travis.yml будет выглядеть примерно так: Давайте разберемся, что здесь написано: Перед тем, как коммитить файл с настройками в репозиторий, убедимся, что команды в разделах script и before_script локально выполняются без ошибок. После этого коммитим файл .travis.yml и пушим изменения на удаленный сервер. Через несколько секунд видим, что Travis увидел наши изменения и запустил сборку. Вы можете посмотреть подробную информацию о выполнении сборки, в том числе всё, что было выведено в консоль. Видим, что был установлен .NET Core и запущены тесты.  Также видим, что тесты упали, т.к. они обращаются к БД, которая им недоступна.   Давайте подключим PostgreSQL в нашу сборку. Для этого добавим в .travis.yml раздел services с записью postgresql, а также добавим в раздел before_script команды для создания БД для тестов с помощью утилиты psql. По умолчанию доступна БД postgres, к которой можно подключиться от имени пользователя postgres без пароля. Чтобы не зависеть от этих настроек по умолчанию, создадим для тестов отдельного пользователя и БД. Если нужно что-то сделать с новой БД, не забываем указывать её название в параметре -d. Полный текст файла .travis.yml приведен ниже: Коммитим измененный файл и пушим на удаленный сервер. Тада!!! На этот раз тесты прошли успешно!  Отлично! Мы разобрались, как настроить Travis CI для нашего проекта на .NET Core, использующего PostgreSQL. Теперь можем добавить в readme нашего проекта бирку, показывающую результат последнего билда с помощью сервиса Shields.io.  Спасибо за внимание!