2016-03-29 36 views
0

我已經在代碼學校跟隨了一些教程和網絡廣播,主要是Node,ES2015,Angular和Express上的教程。我已經開始了自己的一個小項目,並且已經實現了上述所有功能。我還試圖使用Travis-CI和Mocha/Supertests進行測試驅動開發,從而實現自動構建和測試工作。這個問題雖然是我辦npm test我從摩卡使用MochaJS,Supertest w/Babel,Browserify和Gulp運行Travis-CI

1) Uncaught error outside test suite: 
    Uncaught Error: listen EADDRINUSE :::3000 
     at Object.exports._errnoException (util.js:870:11) 
     at exports._exceptionWithHostPort (util.js:893:20) 
     at Server._listen2 (net.js:1236:14) 
     at listen (net.js:1272:10) 
     at Server.listen (net.js:1368:5) 
     at EventEmitter.listen (node_modules/express/lib/application.js:617:24) 
     at Object.<anonymous> (server/app.js:34:5) 
     at require (internal/module.js:12:17) 
     at Object.<anonymous> (test.js:6:11) 
     at require (internal/module.js:12:17) 
     at Array.forEach (native) 
     at node.js:962:3 

得到這個錯誤,我只注意到我在我的主要app.js可能有幫助,但測試仍未結束失蹤module.exports = app

以下是最新推送的鏈接GitHub
以下是Travis-CI上的故障版本。

回答

0

您目前得到的特拉維斯CI的錯誤是因爲NPM正在嘗試與node server/app.js啓動您的應用程序(如line 9 of your package.json規定),但您的應用程序需要的MongoDB是運行(如指定on line 13 of your app.js)。

NPM必須先啓動您的應用程序,然後才能運行測試。

MongoDB作爲Travis CI上的服務提供。看看Travis CI Database Setup docs,看看你如何去。

+0

你是對的,我也可能有這樣的錯誤,當我也到達這一點,但目前我試圖在我的本地機器上使用摩卡測試,我得到這個錯誤。 – gh0st

+0

我解決了我關於測試不在本地工作的問題。我很確定,這與我的Travis-CI失敗沒有任何關係,但無論如何我仍然修復了這個問題,並且在我確實Travis繼續失敗之後。一旦我遵循了向'.travis.yml'添加mongodb的建議,Travis build就開始工作了。 – gh0st

0

好吧,那麼錯誤的是,這個Express應用程序試圖使用您的機器上已經被別的東西使用的網絡端口(可能是另一個Node/Express應用程序,因爲他們經常使用3000)。

嘗試改變var port聲明附近的server/app.js底部成不同於3000

+0

雅,似乎也沒有伎倆。 – gh0st

+0

現在的錯誤輸出是什麼? – ocean

+0

錯誤輸出是相同的。 – gh0st

1

改變我server/app.js聽的東西,如果使用

if (!module.parent) { 
    app.listen(port,() => { 
     console.log("Listening on port " + port); 
    }); 
} 

解決了我就沒有工作我的本地機器上測試問題。這樣做的原因可以找到here
還加入

services: 
    - mongodb 

像@ocean所說的工作,其理由可以參考here

相關問題