在Travis的后台运行节点服务器

我试图对travis进行unit testing,它需要一个位于单独目录中的节点服务器来运行。 所以我需要在运行chai-mochatesting之前让服务器在后台运行。 但是我一直有很多麻烦得到这一切工作…这里是我的.yml文件

language: node_js node_js: - "6.10.0" services: mongodb env: - TEST_DIR=UserService/server - TEST_DIR=ApplicantService - TEST_DIR=ta-corrd-service before_script: - sleep 15 script: - cd UserService/server && npm install nodemon && npm install && npm start& cd $TEST_DIR && npm install && npm test 

我需要进入userservice / server目录,然后执行npm start,然后在每个test_dir中执行npmtesting。

错误我得到特拉维斯

 > proj-awol@0.0.0 test /home/travis/build/csc302-2017-spring/proj-Awol/ta-corrd-service > mocha --recursive course (node:1780) DeprecationWarning: Mongoose: mpromise (mongoose's default promise library) is deprecated, plug in your own promise library instead: http://mongoosejs.com/docs/promises.html 1) "before all" hook 2) "after all" hook 0 passing (68ms) 2 failing 1) course "before all" hook: Uncaught Error: connect ECONNREFUSED 127.0.0.1:3002 at Object.exports._errnoException (util.js:1022:11) at exports._exceptionWithHostPort (util.js:1045:20) at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1087:14) 2) course "after all" hook: Uncaught Error: socket hang up at createHangUpError (_http_client.js:254:15) at Socket.socketCloseListener (_http_client.js:286:23) at TCP._handle.close [as _onclose] (net.js:498:12) npm ERR! Test failed. See above for more details. The command "cd UserService/server && npm install nodemon && npm install && npm start& cd $TEST_DIR && npm install && npm test" exited with 1. Done. Your build exited with 1. 

我真的不知道我做错了什么。 当我在我的机器上执行命令时,它可以正常工作。

编辑:只是一些更多的信息,错误消息“错误:连接ECONNREFUSED”也发生在我的本地机器上,如果节点服务器没有运行。 所以我的猜测是,Travis没有正确启动节点服务器。 但是我不确定我的脚本有什么问题。

我很抱歉,但是你正在做的是让你变得艰难。 你应该把所有的testing都放在一个目录下。 我想不出一个会迫使你在不同的目录下进行testing的理由。

无论你想在你的testing,可以很容易地导入使用import

如果你能弄明白,要从另一个目录的后台运行服务器,你可以使用下面的命令来使用bash脚本

 cd path/to/directory npm start & 

然后在你的.travis.yml文件中

 script: - ./your_script.sh - sleep 25 - npm test