Я пытаюсь настроить жасминовое тестирование моего экспресс-сервера. Я запускаю новый сервер с каждой спецификацией и пытаюсь выключить его после завершения каждой спецификации. К сожалению, сервер, похоже, не выключается... что делает невозможным запуск более одной спецификации.
сервер.js:
var app = require('express')();
exports.start = function(config){
if(!this.server){
app.get('/', function(req, res){
res.status(200);
res.end();
})
this.server = app.listen(config.port, function(){
console.log('Server running on port %d', config.port);
});
}
};
exports.close = function(){
this.server.close();
}
маршрутизация-spec.js:
var server = require('./path/to/server.js');
var http = require('http');
describe('express server', function () {
beforeEach(function () {
server.start({port: 8000});
});
afterEach(function () {
server.close();
});
describe('/', function () {
it('should return 200', function (done) {
http.get('http://localhost:8000', function (res) {
expect(res.statusCode).toBe(200);
done();
});
});
});
});
Первая спецификация проходит, как и ожидалось, но терминал никогда не завершает тест (т. е. сервер все еще работает), и любые последующие добавленные тесты вызывают выдачу «ECONREFUSED».