【问题标题】:Use test database with grunt and mocha使用带有 grunt 和 mocha 的测试数据库
【发布时间】:2014-10-02 20:28:42
【问题描述】:

我正在使用 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);
}

【问题讨论】:

    标签: node.js mongodb express mongoose gruntjs


    【解决方案1】:

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

    基本上你应该做的是使用一个环境变量(例如'NODE_ENV')使用process.env.NODE_ENV访问它,并根据它的值调用正确的配置文件。你应该看看grunt-express-server,它对你的环境设置有很大帮助。

    我希望这会有所帮助!

    【讨论】:

      猜你喜欢
      • 2013-12-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-07-01
      • 1970-01-01
      • 1970-01-01
      • 2017-03-19
      相关资源
      最近更新 更多