Тесты Дредда с 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.