Dredd тестирует 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. Я считаю, что мне нужно сделать это только прямо перед тем, как дредд проверит крючок.


person Jeff    schedule 27.03.2017    source источник


Ответы (2)


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

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

person Honza Javorek    schedule 28.03.2017
comment
Как я могу получить db в файле javascript крюка? var db = требуется (./src/db); крючки.beforeAll(...? - person Jeff; 05.04.2017
comment
Я сделал, модуль «db» не был распознан. Я решил поместить -docker-compose up -d, sleep 30, команды sql в скрипт, который я вызываю в файле dredd.yml в качестве сервера: ./script.sh Кажется, что это правильно вставляет данные, но затем тесты dredd error out fail: Ошибка подключения к тестируемому серверу! - person Jeff; 06.04.2017
comment
Извините, это довольно специфическая проблема, которую нужно решить в комментариях здесь. Не стесняйтесь задавать вопросы в репозитории Dredd или писать на [email protected], где мы можем обсудить это подробно. - person Honza Javorek; 06.04.2017

Догадаться,

В моем 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
person Jeff    schedule 07.04.2017