ありふれた Express アプリ用にいくつかの Vows ベースのテストを作成しようとしています。
テストソースは次のとおりです。
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()
、teardown 関数で動作せず、テストが成功した後に永久にハングすることです。私はウェブを検索して、たくさんのconsole.log
s を追加しようとしましたが、すべて役に立ちませんでした。
Node.js 4.2.0 の Windows x64 ビルドを使用assert@1.3.0
してvows@0.8.1
います。
テストのハングを停止する方法はありますか?