Как протестировать кластерное приложение Express с Mocha?

Вот упрощенная версия моего кластерного приложения Express:

/index.js

module.exports = process.env.CODE_COV
    ? require('./lib-cov/app')
    : require('./lib/app');

/lib/app.js

var cluster = require('cluster'),
    express = require('express'),
    app = module.exports = express.createServer();

if (cluster.isMaster) {
    // Considering I have 4 cores.
    for (var i = 0; i < 4; ++i) {
        cluster.fork();
    }
} else {
    // do app configurations, then...

    // Don't listen to this port if the app is required from a test script.
    if (!module.parent.parent) {
        app.listen(8080);
    }
}

/test/test1.js

var app = require('../');

app.listen(7777);

// send requests to app, then assert the response.

Вопросов:

var app = require('../'); не будет работать в этой кластерной среде. Какое из рабочих приложений оно должно вернуть? Должен ли он возвращать объект кластера вместо приложения Express?Теперь, очевидно, установка порта в тестовом скрипте не будет работать. Как бы вы установили порт в тестовом скрипте для кластера приложений?Как бы вы отправляли запросы в этот кластер приложений?

Единственное решение, которое я могу придумать, - это условно отключить функцию кластеризации и запустить только одно приложение, если приложение запрашивается из тестового сценария (if (module.parent.parent) ...).

Есть ли другой способ протестировать кластерное приложение Express с Mocha?

Ответы на вопрос(3)

Ваш ответ на вопрос