¿Cómo probar una aplicación Express agrupada con Mocha?

Aquí hay una versión simplificada de mi aplicación cluster 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.

Preguntas:

var app = require('../'); no funcionará en este entorno de cluster. ¿Cuál de las aplicaciones de trabajo debería devolver? ¿Debería devolver el objeto de clúster en lugar de una aplicación Express?Ahora, obviamente, establecer el puerto en el script de prueba no funcionará. ¿Cómo establecería un puerto dentro de un script de prueba para un conjunto de aplicaciones?¿Cómo enviarías solicitudes a este grupo de aplicaciones?

La única solución que se me ocurre es desactivar condicionalmente la función de agrupación en clústeres y ejecutar solo una aplicación si la aplicación se solicita desde un script de prueba (if (module.parent.parent) ...).

¿Alguna otra forma de probar una aplicación Express agrupada con Mocha?

Respuestas a la pregunta(3)

Su respuesta a la pregunta