2016-03-24 12 views
4

Şu anda js ile bir sunucu tarafı uygulaması yapıyorum. Test etmek için, runs npm test by default numaralı Travis'i kullanıyorum.Travis uygulamasında düğüm uygulamasını çalıştırın

Şimdi bağımlılıkları doğru olup olmadığını test etmek ve bu nedenle Travis bu görevi çalıştırabilirsiniz nasıl

nodejs app.js 

ile Travis içinde uygulamayı başlatmak için de ister misin? bunu bir unix kabuk üzerinde olması beklenir gibi

+0

Travis benzeri bir çok servis gibi, kurulum ve çalıştırma testlerini ve yapım öncesi/sonrası görevleri otomatik olarak üstlenecek veya ima edecek gibi görünüyor. Lütfen bunun aslında Stackoverflow'ta uygun bir soru olmadığını düşünün, Travis'e yönelik dokümanlar veya resmi kılavuzları okuduğunuzdan emin olun. – diegoaguilar

cevap

7

herhangi bir görevi çalıştırabilirsiniz:

amacınız npm install komutla zaten kaplıdır Ancak
language: node_js 
node_js: 
    - "5" 
before_script: 
    - npm install 
script: 
    - node app.js 
    - npm test 

. Bu başarısız olursa ve daha sonra sizin npm test başarısız olursa, yapı başarılı olmaz.

Gerçek sunucuları çalıştırmanız gereken daha karmaşık örnekler için, API son-2-bit sınaması yerine, bunun yerine docker-compose kullanırdım. Ama burası burada çok fazla.

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 

liman işçisi-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" 
3

orijinal basit cevap yakındır, ama bu forumunda bulunan bir modifikasyon gerekli : https://github.com/travis-ci/travis-ci/issues/1321

Ben arka planda benim sunucu işlemini başlatmak için node app.js sonunda işareti (&) gerekli. Aksi halde, sunucu ön planda çalışır, bekler ve asla npm test'a ulaşmaz.
İlgili konular