Tôi có một ứng dụng Koa rất đơn giản:mocha ngắm thất bại dưới 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);
mà tôi thử nghiệm với mocha và supertest như thế này;
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);
});
});
tôi muốn xem các tập tin của tôi đối với những thay đổi và sử dụng -w
cờ như thế này
mocha -u bdd -R min -w
đó làm việc tốt. Tôi thay đổi một tập tin, thử nghiệm được reexcuted và tất cả là tốt.
Nhưng, rất kỳ lạ, nếu tôi chuyển lệnh đó vào tập tin package.json
của tôi như là một kịch bản, như thế này:
"scripts": {
"watch:test": "mocha -u bdd -R min -w"
},
Lần đầu tiên tôi chạy lệnh nó hoạt động, khi tôi thực hiện một sự thay đổi đó được chọn nhưng giờ thử nghiệm không thành công với:
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)
Lỗi đó sẽ không biến mất cho đến khi tôi dừng mocha
và sau đó khởi động lại.
Tại sao nó hoạt động khác khi chạy qua npm
? Tôi có thể làm gì để sửa lỗi này?