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

How to call "mongoimport" from a Node.js child-process on Travis-CI.org?

关于 SO 的第一个问题...如果出现问题,抱歉。

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

所有测试都在我的笔记本电脑上通过(Node 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 旋转:

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 可用(其他测试已连接并通过)。我需要所有新更新插入内容的最新版本。

非常感谢任何帮助!

蒂姆

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