在Travis中运行节点应用程序
我目前正在构build一个节点js的服务器端应用程序。 为了testing它,我使用Travis, 默认运行npmtesting 。
现在我也想testing依赖关系是否正确,因此在Travis中启动应用程序
nodejs app.js
我如何在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
。