私のアプリ サーバーは、node.js クラスター API cluster.fork() を使用して、複数の子プロセスを fork します。これはうまくいきます。
ただし、単体テストに vows を使用しようとすると、アプリ サーバー内の cluster.fork() への呼び出しが原因で、テストも複数回実行されました。次のように、テスト コード内でサーバーをインスタンス化します。
basic-test.js
var vows = require('vows');
var MyAppServer = require('../my_app');
// start the server
var app = MyAppServer.start();
var suite = vows.describe('My Tests');
suite.discuss('connections API')
.addBatch({ ... })
.export(module);
この場合、テスト コードが複数回実行されるのを防ぐにはどうすればよいですか? このテストは npm テストに含まれているため、テスト自体の中でアプリ サーバーをインスタンス化する方法が必要です。