0

我试图让 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 测试之前就这样做

4

2 回答 2

0

您需要使用“setup”和“teardown”操作扩展 Dredd 测试,这将在测试 API 之前填充数据库,然后清除数据库(以隔离单个测试)。

你可以使用Dredd Hooks来做到这一点。在 Dredd 文档中也描述了HTTP 事务隔离的概念。

于 2017-03-28T08:26:41.863 回答
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
于 2017-04-07T22:01:34.520 回答