настройка юнит-теста докеров

Я хочу настроить среду модульного тестирования для своего продукта. У меня есть веб-приложение, созданное на nginx в Lua, которое использует mysql и redis. Я думаю, что docker подойдет для этого, хотя я новичок в docker. Мое приложение работает на сервере Centos (рабочий сервер).

Я планирую настроить другой контейнер для mysql, redis и webapp, а затем написать приложение UT (модульный тест для Lua с использованием Busted framework) на моем Mac (моя машина для разработки — MAC) или VM, чтобы протестировать его. Приложение UT будет общаться с док-контейнером nginx, а nginx будет использовать контейнер mysql и redis. Это хорошо ? Если да, может ли кто-нибудь направить меня, как это сделать? может есть хорошая ссылка? Если нет, то что может быть лучше. Я уже пытался использовать vagrant, но это заняло слишком много времени, чего не должно быть в моем случае с UT.


person Nishant Kumar    schedule 23.12.2015    source источник
comment
спасибо за редактирование @NicolBolas   -  person Nishant Kumar    schedule 24.12.2015
comment
Боюсь, вы путаете терминологию. Модульные тесты — это тесты, предназначенные для проверки компонента изолированно. То, что вы пытаетесь запустить, — это интеграционные тесты, в которых вы проверяете, как все работает вместе.   -  person Akira    schedule 07.01.2016
comment
@Акира, я согласен. На самом деле я пытаюсь настроить среду для интеграционного тестирования вместе с настройкой модульного теста (используя разоренную структуру). Это поможет мне тщательно протестировать мое приложение.   -  person Nishant Kumar    schedule 08.01.2016
comment
Я создал это пару месяцев назад, может дать вам несколько идей, как это сделать: github.com/boynux/ докер-пыль   -  person Boynux    schedule 08.01.2016


Ответы (2)


В качестве примера того, как мы настраиваем наш шаблон проекта, вы можете взглянуть на phundament/app и его тестовую настройку.

Мы используем докеризованную установку GitLab с настраиваемый раннер, способный выполнять docker-compose.

Примечание! Сам раннер работает на отдельном хосте Docker.

Мы используем docker-compose.yml для определения сервисов в стек с настройками для разработки и тестирование.

Конфигурация CI оптимизирована для обработки нескольких одновременные тесты изолированных стеков, это просто делается путем указания пользовательского файла COMPOSE_PROJECT_NAME.

Немного подробной документации о нашем процессе тестирования и полезная информация о docker-compose и докеризированном CI.

Наконец, Travis CI уже давно поддерживает Docker, но я не этот подход вообще не тестировался.

person schmunk    schedule 04.01.2016

Если вы новичок в CI на основе Docker, посмотрите Drone:

У этого решения есть некоторые недостатки (например, размер изображений), но оно поможет вам сдвинуться с мертвой точки.

person Fuxi    schedule 04.01.2016