Wie teste ich eine Clustered Express App mit Mocha?

Hier ist eine vereinfachte Version meiner Cluster Express-App:

/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.

Fragen:

var app = require('../'); funktioniert in dieser Clusterumgebung nicht. Welche der Worker-Apps soll sie zurückgeben? Sollte es das Cluster-Objekt anstelle einer Express-App zurückgeben?Offensichtlich funktioniert das Einstellen des Ports im Testskript nicht. Wie würden Sie einen Port in einem Testskript für einen Cluster von Apps festlegen?Wie würden Sie Anfragen an diesen Cluster von Apps senden?

Die einzige Lösung, die ich mir vorstellen kann, besteht darin, die Clustering-Funktion bedingt zu deaktivieren und nur eine App auszuführen, wenn die App von einem Testskript angefordert wird (if (module.parent.parent) ...).

Gibt es eine andere Möglichkeit, eine Clustered Express-App mit Mocha zu testen?

Antworten auf die Frage(3)

Ihre Antwort auf die Frage