如何从Travis-CI.org上的Node.js子进程调用“mongoimport”?

时间:2017-01-24 00:41:04

标签: mongodb travis-ci mongoimport

关于SO的第一个问题...对不起,如果这出错了。

我正在使用Mocha来测试Node.js模块。该模块使用child_process.exec()来调用mongoimport命令...如果一切顺利,它应该将一些测试数据加载到MongoDB数据库中。

所有测试都通过我的笔记本电脑(节点6.9,MongoDB v3.4.1),但是当我转向使用Travis-CI.org时,事情就失败了:

{
"killed": false,
"code": 127,
"signal": null,
"cmd": "mongoimport -h localhost:27017 -d test -c test_planets --type json --file \"/tmp/planet.json\" --upsertFields planetName"
}

...因为,我猜,它没有找到mongoimport命令?

SO帮我指出了这个.travis.yml文件似乎很适合获得V3 MongoDB spun-up:

language: node_js
node_js:
  - "6.9"
sudo: false
addons:
  apt:
    sources:
      - mongodb-upstart
      - mongodb-3.0-precise
    packages:
      - mongodb-org-server
      - mongodb-org-shell

before_script:
  - sleep 15

...我很高兴MongoDB可用(其他测试已连接并通过)。我需要一个最新版本的所有新的upsert东西。

  • 但是我对如何从Travis-CI上的Node.js子进程运行mongoimport命令(这也是新的)发了言。它甚至可能吗?

非常感谢任何帮助!

1 个答案:

答案 0 :(得分:2)

只需将“mongodb-org-tools”添加到.travis.yml文件的packages部分即可。这将使mongoimport命令可用。