你如何让Travis CI启动mongodb?
我创建了一个.travis.yml文件,据我所知是正确的,但是当travis CI运行测试时(这是一个新项目,所以我只有一个),我得到一个错误,即没有数据库运行你如何让Travis CI启动mongodb?,mongodb,travis-ci,Mongodb,Travis Ci,我创建了一个.travis.yml文件,据我所知是正确的,但是当travis CI运行测试时(这是一个新项目,所以我只有一个),我得到一个错误,即没有数据库运行 connection error: { [MongoError: connect ECONNREFUSED] name: 'MongoError', message: 'connect ECONNREFUSED' } 我添加了一个启动mongo的预测试脚本,现在我可以在不启动mongo的情况下运行本地测试,测试通过了,但使用Trav
connection error: { [MongoError: connect ECONNREFUSED] name: 'MongoError', message: 'connect ECONNREFUSED' }
我添加了一个启动mongo的预测试脚本,现在我可以在不启动mongo的情况下运行本地测试,测试通过了,但使用Travis CI时会出现错误:
ERROR: child process failed, exited with error number 100
我的.travis.yml文件如下所示:
language: node_js
node_js:
"0.10"
services:
- mongodb
下面是我在package.json中的脚本:
"scripts": {
"pretest": "mongod --fork --logpath /dev/null",
"test": "./node_modules/mocha/bin/mocha test/**/*.js",
"posttest": "mongo admin --eval 'db.shutdownServer()' > /dev/null",
"start": "node server.js"
},
我试图将链接放到travis,但我是新手,所以只能放一个链接,所以我将把链接放到我的回购协议上,这样,如果你想看到travis的全部失败,你可以从那里获得这些链接:
这方面的任何帮助都会很好。我是新来的堆栈溢出,所以请让我知道如果你需要更多的信息
谢谢你的帮助 我想买一件可能有用的东西
看起来您不需要像在预测试中那样手动启动mongodb。也许,我真的不知道,您的预测试是先运行的,之后travis尝试启动mongodb,但它已经运行了,它遇到错误并停止进程
我还发现了这个。问题出在mongodb数据目录的所有者身上。它在根目录下,但mongodb是在没有sudo的情况下启动的。如果您自己运行mongodb(就像您在预测试中所做的那样),您可以手动为目录指定
--dbpath
,并为您的用户提供可接受的权限 我查看了您的回购协议,看起来您有两个文件:
- 一个名为
但不启动MongoDB的.travis.yml
- 一个名为
(注意这里没有前导点(即travis.yml
),它以上面列出的代码启动MongoDB
.Travis.yml
的文件。所以一定要选对人
我为你的回购做了分叉,并用.travis.yml
做了一个测试,似乎有
希望这有帮助 谢谢你的帮助,但不幸的是,我已经找到了那个线索,它对特拉维斯不起作用。我尝试了您的建议并删除了启动mongodb的预测试脚本,但它返回了原始的数据库连接错误。太棒了,就是这样,谢谢Dominic!我觉得有点傻,我已经找了几个小时的答案…好消息!不用担心,这会发生在我们最好的人身上