travis上与mongodb的连接被拒绝
我正在尝试在Travis上设置mongo以用于集成测试。初始化mongodb的travis配置是:travis上与mongodb的连接被拒绝,mongodb,docker,travis-ci,Mongodb,Docker,Travis Ci,我正在尝试在Travis上设置mongo以用于集成测试。初始化mongodb的travis配置是: env: global: - MONGODB_URI: mongodb://fillrx_test:test@127.0.0.1:27017/fillrx_test_db before_install: - sleep 15 - mongo fillrx_test_db --eval 'db.createUser({user:"fillrx_test", p
env:
global:
- MONGODB_URI: mongodb://fillrx_test:test@127.0.0.1:27017/fillrx_test_db
before_install:
- sleep 15
- mongo fillrx_test_db --eval 'db.createUser({user:"fillrx_test", pwd:"test",roles:["readWrite"]});'
- docker build -t jeremycod/api-test -f ./server/Dockerfile.dev ./server
script:
- docker run --env MONGODB_URI -e CI=true jeremycod/api-test npm test
但是,这在Travis上失败,出现连接被拒绝错误:
1) Create address endpoint /api/v1/address/user/userId
"before all" hook: connectToTestDB for "Create address with correct input":
MongoNetworkError: failed to connect to server [127.0.0.1:27017] on first connect [Error: connect ECONNREFUSED 127.0.0.1:27017
at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1146:16) {
name: 'MongoNetworkError'
}]
更新:
此问题的解决方案是使用“-networkhost”运行docker容器,例如
您需要启动服务器。谢谢您的建议。我没有将mongodb添加到服务列表中,因此它不可用。但是,在将mongodb添加为服务后,它不会从travis脚本中失败,但会在我运行的测试中失败。我猜这可能与我在docker容器中运行测试有关。您需要启动服务器。谢谢您的建议。我没有将mongodb添加到服务列表中,因此它不可用。但是,在将mongodb添加为服务后,它不会从travis脚本中失败,但在我运行的测试中失败。我猜这可能与我在docker容器中运行测试有关。
- docker run --network host --env MONGODB_URI -e CI=true jeremycod/api-test npm test
This approach binds docker container directly to the Docker host’s network, so it's available from docker container at url:
mongodb://127.0.0.1:27017/mongo_db_name