我目前使用节点js构建服务器端应用程序.为了测试它,我使用Travis,它默认运行npm test.
现在我还要测试依赖项是否正确,从而在Travis中启动应用程序
nodejs app.js
Run Code Online (Sandbox Code Playgroud)
我怎样才能在Travis中执行此任务?
elj*_*efe 10
您可以运行任何类似于您希望它在unix shell上的任务:
language: node_js
node_js:
- "5"
before_script:
- npm install
script:
- node app.js
- npm test
Run Code Online (Sandbox Code Playgroud)
但是,npm install命令已涵盖您的目的.如果此操作失败并且随后npm test失败,则构建将不会成功.
对于更复杂的示例,您需要运行实际的服务器,比如在API端到端测试中,我会使用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
Run Code Online (Sandbox Code Playgroud)
泊坞窗,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"
Run Code Online (Sandbox Code Playgroud)
小智 7
最初的简单答案很接近,但我需要在这个论坛上找到一个修改: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
Run Code Online (Sandbox Code Playgroud)
我需要在最后的&符号(&)在node app.js后台启动我的服务器进程.否则,它在前台运行服务器,等待,永远不会到达npm test.
| 归档时间: |
|
| 查看次数: |
4095 次 |
| 最近记录: |