在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
- 如何在NodeJS脚本中加载自定义的bash别名?
- NodeJS – 如何写一个文件的所有console.log?
- 在terminal中滚动一个大的console.logstring
- 给进程的variables或名称杀死这个实例的每个进程,但只有给定的名称(variables)?
- -bash:react-native:找不到命令
- 无法使用Bash&NPMreplaceconfiguration中的env
- npm后安装失败与多个命令
- 如何继续在repl / bash w / Node.js Commander中接收asynchronousconsole.log消息?
- Node.js与Git Bash(MINGW64)