我的应用服务器使用node.js群集API cluster.fork()来分叉多个子进程。这很好。
但是,当我尝试使用vows进行单元测试时,由于在app服务器内调用了cluster.fork(),测试也运行了多次;当我在我的测试代码中实例化服务器时,如下所示:
基本-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测试中,所以我需要一种在测试本身内实例化我的app服务器的方法。
答案 0 :(得分:1)
在顶部你可以做到
var cluster = require('cluster');
然后将套件包装在if
:
if (cluster.isMaster) {
var suite = ...
...
}
有关isMaster
的详情,请查看the documentation