Тесты Дредда с MariaDB с использованием TravisCI

Я пытаюсь заставить Трэвиса запускать тесты Dredd во время процесса сборки. Я понял, что мне нужно будет запустить mariaDB как часть процесса. Я не уверен, как создать таблицу или вставить пример данных до запуска тестов Dredd. Я добавил mariadb в качестве дополнения к travis.yml и вот об этом. Также для запуска dredd в travis я также буду использовать docker-compose.

РЕДАКТИРОВАТЬ:

У меня работает travis.yml

docker-compose up -d
sleep 30
BUNCH OF SQL COMMANDS to create tables and insert data
dredd

Но в этот момент мой dredd.yml имеет

server: docker-compose up

поэтому я, кажется, сначала вызываю docker-compose в travis и запускаю команды mysql, а затем снова вызываю его прямо перед dredd. Я считаю, что мне нужно только сделать это прямо перед тестом Dredd на крючке

2 ответа

Решение

Догадаться,

В моем travis.yml я:

docker-compose up -d
sleep 30
~~RUN SQL COMMANDS TO CREATE TABLES/ADD DATA~~
docker-compose stop
sleep 5 (to allow for compose to start up)
dredd

Тогда в моем dredd.yml:

server: docker-compose up
server-wait: 60

Вам необходимо расширить тесты Dredd с помощью действий "setup" и "teardown", которые заполнили бы базу данных до того, как ваш API будет протестирован, и очистили базу данных впоследствии (чтобы изолировать отдельные тесты).

Вы можете использовать Dredd Hooks, чтобы сделать это. Концепция изоляции HTTP-транзакций также описана в документации Dredd.

Другие вопросы по тегам