ich eine sehr einfache Anwendung Koa haben:Mokka Beobachtung nicht unter npm
var app = module.exports = require("koa")();
app.use(function *(){
this.body = "Koa says Hi!";
});
var port = process.env.PORT || (process.argv[2] || 3000);
port = (typeof port === "number") ? port : 3000;
app.listen(port);
console.log("Application started. Listening on port:" + port);
, die ich mit Mokka und Supertest wie dies zu testen;
var app = require("../");
var request = require("supertest").agent(app.listen());
describe("Our amazing site", function() {
it("has a nice welcoming message", function (done) {
request
.get("/")
.expect("Koa says Hi!")
.end(done);
});
});
Ich möchte meine Dateien für Änderungen beobachten und die -w
Flagge wie diese
mocha -u bdd -R min -w
verwenden, das gut funktioniert. Ich ändere eine Datei, der Test wird erneut ausgeführt und alles ist gut.
aber sehr seltsam, wenn ich diesen Befehl in meine package.json
Datei als Skript zu bewegen, wie folgt aus:
"scripts": {
"watch:test": "mocha -u bdd -R min -w"
},
Das erste Mal, dass ich den Befehl funktioniert es laufen, wenn ich eine Änderung vornehmen, die gerichtet bis jetzt aber der Test nicht bestanden mit:
1) Uncaught error outside test suite:
Uncaught Error: listen EADDRINUSE :::3000
at Object.exports._errnoException (util.js:837:11)
at exports._exceptionWithHostPort (util.js:860:20)
at Server._listen2 (net.js:1231:14)
at listen (net.js:1267:10)
at Server.listen (net.js:1363:5)
at Application.app.listen (node_modules/koa/lib/application.js:70:24)
at Object.<anonymous> (index.js:10:5)
at Object.<anonymous> (test/site.spec.js:1:73)
at Array.forEach (native)
at StatWatcher._handle.onchange (fs.js:1285:10)
Dieser Fehler wird nicht weggehen, bis ich mocha
stoppen und dann neu starten.
Warum verhält es sich bei der Ausführung über npm
anders? Was kann ich tun, um das Problem zu beheben?