你如何让 Travis CI 开始 mongodb?
How do you get Travis CI to start mongodb?
我创建了一个 .travis.yml 文件,据我所知它是正确的,但是当 Travis CI 运行s 测试时(这是一个新项目,所以我只有一个)我得到一个错误,没有数据库 运行ning
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"
},
我试着把 links 放到 travis,但是我是新手所以我只能放一个 link,所以我会把 link 放到我的 repo,所以如果你想看到完整的 travis 失败,你可以从那里得到那些 links:https://github.com/mrbgit/short-stories/tree/tests-for-story-post
任何帮助都将非常有用。我是 Stack Overflow 的新手,所以如果您需要更多信息,请告诉我。
感谢您的帮助!
我觉得 link to official docs 可能有点用。
看来您不需要像预测试那样手动启动 mongodb。也许,我实际上并不知道,您的预测试首先是 运行,然后 travis 尝试启动 mongodb,但它已经是 运行,它遇到错误并停止进程。
我也发现了这个thread。问题出在 mongodb 数据目录的所有者中。它在 root 下,但 mongodb 已启动 w/o sudo。如果您是 运行 mongodb 一个人(就像您在预测试中所做的那样),您可以手动指定 --dbpath
目录,并为您的用户提供可接受的权限。
我查看了您的存储库,您似乎有两个文件:
- 一个名为
.travis.yml
不启动 MongoDB
- 一个名为
travis.yml
的人(注意这里没有前导点(即 .
))以 MongoDB 上面列出的代码开头。
Travis CI 仅选取名为 .travis.yml
的文件。所以一定要选对。
我分叉了你的仓库并用 fixed .travis.yml
and seems to have worked.
做了测试
希望对您有所帮助!
我创建了一个 .travis.yml 文件,据我所知它是正确的,但是当 Travis CI 运行s 测试时(这是一个新项目,所以我只有一个)我得到一个错误,没有数据库 运行ning
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"
},
我试着把 links 放到 travis,但是我是新手所以我只能放一个 link,所以我会把 link 放到我的 repo,所以如果你想看到完整的 travis 失败,你可以从那里得到那些 links:https://github.com/mrbgit/short-stories/tree/tests-for-story-post
任何帮助都将非常有用。我是 Stack Overflow 的新手,所以如果您需要更多信息,请告诉我。
感谢您的帮助!
我觉得 link to official docs 可能有点用。
看来您不需要像预测试那样手动启动 mongodb。也许,我实际上并不知道,您的预测试首先是 运行,然后 travis 尝试启动 mongodb,但它已经是 运行,它遇到错误并停止进程。
我也发现了这个thread。问题出在 mongodb 数据目录的所有者中。它在 root 下,但 mongodb 已启动 w/o sudo。如果您是 运行 mongodb 一个人(就像您在预测试中所做的那样),您可以手动指定 --dbpath
目录,并为您的用户提供可接受的权限。
我查看了您的存储库,您似乎有两个文件:
- 一个名为
.travis.yml
不启动 MongoDB - 一个名为
travis.yml
的人(注意这里没有前导点(即.
))以 MongoDB 上面列出的代码开头。
Travis CI 仅选取名为 .travis.yml
的文件。所以一定要选对。
我分叉了你的仓库并用 fixed .travis.yml
and seems to have worked.
希望对您有所帮助!