我试图让travis在构建过程中运行dredd测试。我意识到我需要运行mariaDB作为流程的一部分。我不确定如何在运行dredd测试之前创建表或插入样本数据。我已经添加了mariadb作为travis.yml的插件,并且就此而言。 另外,为了在travis中运行dredd,我也将使用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
所以我似乎先在travis中调用docker-compose并运行mysql命令,然后在dredd之前再次调用它。我相信我只需要在钩子中的dredd测试之前做到这一点
答案 0 :(得分:0)
您需要使用" setup"扩展Dredd测试和"拆解"在测试API之前填充数据库的操作,然后清除数据库(以隔离单个测试)。
您可以使用Dredd Hooks来执行此操作。 Isolation of HTTP Transactions的概念也在Dredd文档中进行了描述。
答案 1 :(得分:0)
想出来,
在我的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