Unit testing 如何在mocha测试用例中获取express app变量?

Unit testing 如何在mocha测试用例中获取express app变量?,unit-testing,express,mocha.js,Unit Testing,Express,Mocha.js,我需要在服务器端做一些http测试。所以我用摩卡咖啡和supertest。 但是我有一个问题,如何获取supertest需要的应用程序变量 我使用的是mean.io项目结构。所以这个gruntfile已经就位了。 它配置摩卡测试,如下所示: mochaTest: { options: { reporter: 'spec', require: 'server.js' }, src: ['test

我需要在服务器端做一些http测试。所以我用摩卡咖啡和supertest。 但是我有一个问题,如何获取supertest需要的应用程序变量

我使用的是mean.io项目结构。所以这个gruntfile已经就位了。 它配置摩卡测试,如下所示:

    mochaTest: {
        options: {
            reporter: 'spec',
            require: 'server.js'
        },
        src: ['test/mocha/**/*.js']
    },
在server.js文件的末尾,它将导出express应用程序:

// Start the app by listening on <port>
var port = process.env.PORT || config.port;
app.listen(port);
console.log('Express app started on port ' + port);

// Initializing logger
logger.init(app, passport, mongoose);

// Expose app
exports = module.exports = app;
//通过监听启动应用程序
var port=process.env.port | | config.port;
app.listen(端口);
console.log('Express应用程序在端口'+端口上启动);
//初始化记录器
logger.init(应用程序、passport、mongoose);
//公开应用程序
导出=模块。导出=应用程序;
如何在mocha测试用例中获得所需的导出应用程序?
我没有任何线索。

你只需调用
var-app=require('my/path/to/app.js')

server.js会执行两次吗?如果server.js执行两次会发生什么?是的。会的。所以,要在mocha中获得应用程序实例,您应该先停止server.js,否则您可以在另一个端口上运行应用程序。