0

我的应用服务器使用 node.js 集群 API cluster.fork() 来分叉多个子进程。这工作正常。

但是,当我尝试使用 vows 进行单元测试时,由于在我的应用服务器中调用了 cluster.fork(),测试也运行了多次;当我在测试代码中实例化服务器时,如下所示:

基本测试.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 测试中,所以我需要一种方法来在测试本身中实例化我的应用服务器。

4

1 回答 1

1

在顶部你可以做

var cluster = require('cluster');

然后将套件包装在if

if (cluster.isMaster) {
    var suite = ...
    ...
}

有关更多信息isMaster,请查看文档

于 2012-11-23T09:20:14.403 回答