【发布时间】:2016-07-08 20:33:53
【问题描述】:
我正在尝试在运行所有测试之前为数据库播种。所以我创建了一个新文件bootstrapTest.js 并将其包含在我的测试源文件中,如下所示gulp.src(['test/bootstrapTest.js', 'test/**/*.js']
bootstrapTest.js 现在需要重置数据库并重新运行迁移并为数据播种。所以我创建了一个子进程并让它运行一个shell脚本(seed.sh)。
`const exec = require('child_process').exec;
exec('./seed.sh',
{env: {database__host: 'localhost', database__user: 'username',
database__port: 3306, database__password: 'password'}}, function
(error, stdout, stderr) { ...
}`
这就是我的seed.sh 的样子
#!/bin/bash
./node_modules/.bin/db-migrate reset --env test
echo '## Database truncated'
./node_modules/.bin/db-migrate up --env test
echo '## Database migrated'
在控制台的输出中,我只看到 echo 输出,而不是正在运行的命令。我已经确认 db-migrate 确实没有运行。
知道为什么db-migrate 没有运行吗?当我从我的 zsh 手动运行它时,它工作正常。
【问题讨论】: