当我使用--watch模式时,为什么Mocha没有正确重启Express?

时间:2017-02-27 09:06:06

标签: node.js mongodb mongoose mocha supertest

我想在我的Express App的API路线上运行测试。我使用Mongoose和它的Schema进行数据库操作。这是我的测试设置(它首先成功运行,但在重新加载时失败...):

const request = require('supertest');
// this loads the whole express app
const app = require('../../server');

describe('[Auth]', function () {
  it('returns 401 with invalid credentials', function (done) {
    request(app)
      .post('/auth/login')
      .field('email', 'invalidMail')
      .field('password', 'invalidPassword')
      .expect('Content-Type', contentType)
      .expect(401, done);
  }
}

当我启动mocha时,此测试成功。我在--watch mode启动它,每当我保存文件并且mocha重新启动测试时我都会收到以下错误:

MongooseError: Cannot overwrite `user` model once compiled.
    at Mongoose.model (...\node_modules\mongoose\lib\index.js:376:13)
    ...

我尝试在beforeafter挂钩中连接和断开Mongoose,但这并没有改变任何内容。

对我来说,Mocha只是在不停止它的情况下重新加载我的应用程序。我在这里错过了什么?什么是最佳做法?

0 个答案:

没有答案