Я пытаюсь написать некоторые тесты на основе опросов для моего приложения «Экспресс-экспресс».server.close() не работает при разрыве Vow
Вот тестовый источник:
var vows = require('vows');
var assert = require('assert');
var startApp = require('./lib/start-app.js');
var suite = vows.describe('tournaments');
suite.addBatch({
"When we setup the app": {
topic: function() {
return startApp();
},
teardown: function(topic) {
if (topic && topic.close) {
topic.close();
}
},
"it works": function(topic) {
assert.isObject(topic);
}
}
});
suite.run();
И вот start-app.js
:
var app = require('../../app.js');
function start() {
var server = app.listen(56971, 'localhost');
return server;
}
module.exports = start;
app.js
экспортирует регулярное приложение Express.js, созданный с express()
.
Проблема заключается в том, что всякий раз, когда я запускаю тест, topic.close()
не работает в функции разрыва, и тест вешает навсегда после достижения успеха. Я пробовал искать в Интернете и добавлять много лотов console.log
с, все безрезультатно.
Я нахожусь в Windows x64 build Node.js 4.2.0, и я использую [email protected]
и [email protected]
.
Любая идея, как я могу заставить мой тест перестать висит?
Одинаковая проблема здесь, тест построен на Travis навеки. Вы нашли решение? –
@FernandoPiancastelli Я никогда не находил правильного решения, но, как грязный хак, вызов '.unref()' объекта 'topic'« исправил »это. Я подозреваю, что есть ошибка где-то, возможно, в ядре Node ... – strugee