2016-03-29 5 views
0

Ich habe einige Tutorials und Webcasts auf Code-Schule, vor allem auf Knoten, ES2015, Angular und Express gefolgt. Ich habe ein eigenes kleines Projekt gestartet, und ich habe alle oben genannten umgesetzt. Ich versuche auch, automatisierte Builds und Tests mit Travis-CI und Mocha/Supertests für testgetriebene Entwicklung zu bekommen. Das Problem ist aber, wenn ich npm test betreibe ich diesen Fehler von MochaLaufen Travis-CI mit MochaJS, Supertest w/Babel, Browserify und Schluck

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 

Ich habe gerade bemerkt, dass ich module.exports = app am Ende meiner Haupt app.js fehlte, die dazu beigetragen haben könnte, aber die Tests noch scheitern.

Hier ist ein Link zu den neuesten Push auf GitHub.
Hier ist die fehlerhafte Build Travis-CI.

Antwort

0

Der Fehler Sie sind momentan in Travis CI bekommen, weil NPM versucht, die App mit node server/app.js zu starten (wie in line 9 of your package.json angegeben), aber Ihre Anwendung erfordert MongoDB laufen (wie angegeben on line 13 of your app.js).

NPM muss Ihre App starten, bevor die Tests ausgeführt werden können.

MongoDB ist als Service auf Travis CI verfügbar. Werfen Sie einen Blick auf die Travis CI Database Setup docs und sehen Sie, wie Sie gehen.

+0

Sie haben Recht, und ich werde wahrscheinlich diesen Fehler haben, wenn ich zu diesem Punkt auch komme, aber derzeit versuche ich mit Mocha auf meinem lokalen Rechner zu testen, und ich bekomme diesen Fehler. – gh0st

+0

Ich habe mein Problem gelöst, dass Tests nicht lokal funktionieren. Ich bin mir ziemlich sicher, dass das nichts mit meinem Travis-CI zu tun hatte, aber ich habe es trotzdem repariert und nachdem ich es geschafft hatte, versagte Travis weiter. Nachdem ich Ihren Vorschlag, mongodb zu ".travis.yml" hinzuzufügen, verfolgt hatte, begannen Travis-Builds zu arbeiten. – gh0st

0

Ok, der Fehler ist, dass diese Express-App versucht, einen Netzwerkanschluss auf Ihrem Computer zu verwenden, der bereits von etwas anderem verwendet wird (vielleicht eine andere Node/Express-App, da sie oft 3000 verwenden).

Versuchen Sie, die var port Erklärung am unteren Rand der server/app.js Wechsel etwas anderes als 3000.

+0

Ja, das schien auch nicht der Trick zu sein. – gh0st

+0

Was ist die Fehlerausgabe jetzt? – ocean

+0

Der Fehlerausgang ist derselbe. – gh0st

1

zu sein, meine server/app.js ändern, wenn zu hören mit

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

gelöst mein Problem in Bezug auf Tests nicht auf meinem lokalen Rechner arbeiten . Der Grund dafür ist here.
Auch

der
services: 
    - mongodb 

wie @ocean Zugabe gearbeitet, die Argumentation here verwiesen werden kann.

Verwandte Themen