使用带有grunt和mocha的测试数据库

时间:2014-10-02 20:28:42

标签: node.js mongodb express mongoose gruntjs

我正在使用Mongoose在Node.js,Express和MongoDB中构建一个Web应用程序。我希望有一个专用的数据库,以便在我使用Grunt运行我的Mocha测试时,这样我就不会搞砸我用于开发的数据库。我该怎么做?

我目前将开发数据库配置信息放在/config/db.js文件中,该文件在启动时加载并连接到我的app.js文件中的开发数据库。如何在Grunt任务中运行我的Mocha测试,在运行Grunt时动态使用测试数据库?我试图在我的Mocha测试文件的before()钩子中的测试文件中断开与开发数据库的连接,然后连接到测试数据库。但是,它一直使用开发数据库。一个例子如下:

before(function(done) {
    if(mongoose.connection.db) mongoose.connection.close();
    mongoose.connect(<test_db_uri>, done);
}

1 个答案:

答案 0 :(得分:4)

您的问题接近以下问题Test environment in Node.js / Express application

基本上你应该做的是使用一个env变量(&#39; NODE_ENV&#39;例如)用process.env.NODE_ENV访问它,并根据它的值调用正确的配置文件。你应该看看grunt-express-server,它可以帮助你进行环境设置。

我跳这会有所帮助!