在Travis中运行节点应用程序

我目前正在构build一个节点js的服务器端应用程序。 为了testing它,我使用Travis, 默认运行npmtesting 。

现在我也想testing依赖关系是否正确,因此在Travis中启动应用程序

nodejs app.js 

我如何在Travis中执行这个任务?

       

网上收集的解决方案 "在Travis中运行节点应用程序"

你可以运行任何你希望它在unixshell上的任务:

 language: node_js node_js: - "5" before_script: - npm install script: - node app.js - npm test 

但是你的目的已经被npm install命令覆盖了。 如果这失败,并且随后你的npm test失败,构build将不会成功。

对于更复杂的示例,在需要运行实际服务器的情况下,比如在API端到端testing中,我会使用docker-compose 。 但是这里太多了。

travis.yml

 language: node_js sudo: required services: - docker cache: directories: - node_modules node_js: - 5 before_install: - npm install -g node-gyp before_script: - npm install - npm install -g standard - docker-compose build - docker-compose up -d - sleep 3 script: - npm test after_script: - docker-compose kill 

泊坞窗,compose.yml

 api1: build: . dockerfile: ./Dockerfile ports: - 3955 links: - mongo - redis environment: - REDIS_HOST=redis - MONGO_HOST=mongo - IS_TEST=true command: "node app.js" api2: build: . dockerfile: ./Dockerfile ports: - 3955 links: - mongo - redis environment: - REDIS_HOST=redis - MONGO_HOST=mongo - IS_TEST=true command: "node app.js" mongo: image: mongo ports: - "27017:27017" command: "--smallfiles --logpath=/dev/null" redis: image: redis ports: - "6379:6379" haproxy: image: haproxy:1.5 volumes: - ./cluster:/usr/local/etc/haproxy/ links: - "api1" - "api2" ports: - 80:80 - 70:70 expose: - "80" - "70" 

原来简单的答案是接近,但我需要在这个论坛上find一个修改: https : //github.com/travis-ci/travis-ci/issues/1321

 language: node_js node_js: - "6" before_script: - npm install script: - node app.js & - npm test 

我需要node app.js末尾的&符号(&)在后台启动我的服务器进程。 否则,它会在前台运行服务器,等待,永远不会进入npm test