Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/40.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 运行Mockgoose.prepareStorage时,Mockgoose正在下载234mb_Javascript_Node.js_Mongoose_Mocha.js_Mockgoose - Fatal编程技术网

Javascript 运行Mockgoose.prepareStorage时,Mockgoose正在下载234mb

Javascript 运行Mockgoose.prepareStorage时,Mockgoose正在下载234mb,javascript,node.js,mongoose,mocha.js,mockgoose,Javascript,Node.js,Mongoose,Mocha.js,Mockgoose,我有一个可以访问mongodb的节点应用程序,mongoose使用mocha和mockgoose进行了测试。 我最近搬到了Mockgoose7.0.5。 我遵循github的入门指南,将我的摩卡咖啡超时时间增加到2分钟 以下是我测试中的before函数: import mongoose from 'mongoose'; var Mockgoose = require('mockgoose').Mockgoose; [...] const mockgoose = new Mockgoose(mo

我有一个可以访问mongodb的节点应用程序,mongoose使用mocha和mockgoose进行了测试。 我最近搬到了Mockgoose7.0.5。 我遵循github的入门指南,将我的摩卡咖啡超时时间增加到2分钟

以下是我测试中的before函数:

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();
});
当我运行测试时,在
mockgoose.prepareStorage
步骤中,mockgoose似乎正在下载一些东西

BEFORE prepareStorage
AFTER prepareStorage
Completed: 0.1 % (0.2mb / 234.3mb
我想这与请求的2分钟超时有关

我的问题是:

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

  • mockgoose是否在每次运行(npm测试)时都需要下载此文件,或者在下次运行(npm测试)时是否会重用此结果

  • 我能阻止他下载一些东西吗。理想情况下,我希望在沙箱环境中运行单元测试,而不访问web(在docker中)。我可以在某个地方下载234mb并让mockgoose重新使用它吗


谢谢

我很确定这是mockgoose 7安装后的一个问题,尽管我不能确定到底是什么。恢复到mockgoose ^6.0.0可修复此问题

更新


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

我在这个问题上搜索了好几个小时,但最终还是找到了一种肮脏的方法来解决它:

复制粘贴一个测试几次。在我的例子中,每个测试都有10秒的超时,这还不足以使百分比达到100%。 因此,如果您运行足够多的测试(在我的例子中大约6个),您将达到100%


一旦你达到100%,你可以再次运行它,所有的测试现在可以快速运行,所以你可以再次删除重复的测试

你好,谢谢你的回复。这种行为来自于在mongodb预构建中使用mongodb下载。你说得对,我可以在我的开发帖子上用第一个npm测试下载它。问题是,我希望在不访问web的情况下,在持续集成中运行单元测试。我将尝试使用mongodb下载来预下载它。我会通知你的