Mockgoose 在运行 mockgoose.prepareStorage 时下载 234mb

Jul*_*SIN 5 javascript mocha.js mongoose node.js mockgoose

我有一个节点应用程序,可以访问使用 mocha 和 mockgoose 测试的 mongodb 抛出的猫鼬。我最近搬到了 mockgoose 7.0.5。我按照 github 上的入门指南将我的 mocha 超时时间提高到 2 分钟。

这是我在测试中的前功能:

import mongoose from 'mongoose';
var Mockgoose = require('mockgoose').Mockgoose;
[...]

const mockgoose = new Mockgoose(mongoose);

before(function(done) {
  try {
    console.log('BEFORE prepareStorage');
    mockgoose.prepareStorage().then(() => {
    console.log('IN prepareStorage');
      mongoose.connect('mongodb://example.com/TestingDB', function(err) {
        done(err);
      });
    }).catch((error) => {
      done(error);
    });
  } catch(e) {
    done(e);
  }
  console.log('AFTER prepareStorage');  
});

beforeEach(function(done) {
  mockgoose.helper.reset();
  done();
});
Run Code Online (Sandbox Code Playgroud)

当我运行测试时,在这mockgoose.prepareStorage一步中,mockgoose 似乎正在下载一些东西。

BEFORE prepareStorage
AFTER prepareStorage
Completed: 0.1 % (0.2mb / 234.3mb
Run Code Online (Sandbox Code Playgroud)

我想这与请求的 2 分钟超时有关。

我的问题/问题是:

  • 有人知道mockgoose正在下载什么吗?(我不记得以前版本的 mockgoose 有这种行为)

  • mockgoose 是否需要在每次运行时下载(npm 测试),还是会在下一次运行(npm 测试)中重用结果?

  • 我能阻止他下载东西吗?理想情况下,我想在沙箱环境中运行我的单元测试,而不能访问网络(在 docker 中)。我可以在某处下载 234mb 并让 mockgoose 重新使用它吗?

谢谢

Cal*_*Cox 2

我很确定这是mockgoose 7 安装后步骤的问题,尽管我无法确定到底是什么。恢复到mockgoose ^6.0.0 修复了这个问题。

更新

问题是,mockgoose 第一次运行时必须下载 mongodb 源,这可能需要一段时间。您应该尝试将测试超时更新为较长的时间(5-10 分钟)。这确实解决了问题。幸运的是,这只需要一次。