2013-11-01 75 views
0

我想測試我在Travis CI上使用Express框架和MongoDb創建的其餘api服務。測試在本地機器上運行,但在Travis CI上失敗。我猜測問題出在我的.travis.yml和package.json上。測試在Travis CI上使用Node.js(Express)構建的REST api

這裏是我在本地運行我的測試:

// opens mongodb database on port 27017 
mongod 

// reads the db and returns documents depending on the request 
node express.js 

// test CRUD operations on the app 
mocha express.test.js 

我如何可以做同樣的特拉維斯CI?這是我的應用程序https://github.com/mujuni88/Express-RestApi-Tutorial

travis.yml:

language: node_js 
node_js: 
- "0.10" 
- "0.9" 
services: mongodb 
script: 
- "./node_modules/mocha/bin/mocha *.test.js" 

的package.json:

{ 
    "name":"express-restapi", 
    "author":"Joe Buza", 
    "description":"Express RestApi", 
    "version": "0.0.1", 
    "private": true, 
    "keywords":["angular", "mocha", "mongodb", "express"], 
    "license":"BSD", 
    "dependencies": { 
      "express":"3.4.4", 
      "mongoskin":"0.6.0" 
    }, 
    "devDependencies":{ 
     "mocha":"1.13.0", 
     "expect.js":"0.2.0", 
     "superagent":"0.15.7" 
    }, 
    "scripts":{ 
     "start":"node express.js" 
    } 

} 
+0

什麼是TravisCI錯誤?我認爲你需要摩卡在依賴不只是devDependencies,不是? – Azat

+0

錯誤是「未捕獲的錯誤:預計{code:'ECONNREFUSED',」。有關更多信息,請查看此鏈接:https://travis-ci.org/mujuni88/Express-RestApi-Tutorial/jobs/13346827。這可能與mongodb有關? – cantfindaname88

+0

我有同樣的問題!如果我把「node express.js」放在.travis.yml中,它只會讓travis掛在那裏。此方法僅適用於本地計算機。你是如何解決這個問題的? –

回答

2

答案很簡單 - 特拉維斯不會爲你啓動服務器,如果不指定本在腳本步驟。看看我的repository(這有點複雜,但嘿,它測試)。

您可以將express.js的require添加到express.test.js中並從那裏啓動服務器。在所有測試完成之後,不要忘記把它撕下來。

+0

你說得對,我必須在我的express.test.js文件(如「expressjs = require('./ express.js')」)中要求('express.js')。非常感謝你 – cantfindaname88

+0

我有同樣的問題!如果我把「node express.js」放在.travis.yml中,它只會讓travis掛在那裏。此方法僅適用於本地計算機。你是如何解決這個問題的? –

相關問題