首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >运行mockgoose.prepareStorage时,Mockgoose正在下载234 is

运行mockgoose.prepareStorage时,Mockgoose正在下载234 is
EN

Stack Overflow用户
提问于 2017-03-14 22:02:30
回答 2查看 1.3K关注 0票数 5

我有一个访问mongodb的节点应用程序,用mocha和mockgoose测试抛出的猫鼬。我最近搬到了莫奇鹅7.0.5。我跟踪了github的开始,并将我的摩卡超时时间提高到了2分钟。

下面是我在测试中的前几个函数:

代码语言:javascript
复制
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步骤中,模拟鹅似乎正在下载一些东西。

代码语言:javascript
复制
BEFORE prepareStorage
AFTER prepareStorage
Completed: 0.1 % (0.2mb / 234.3mb

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

我的问题是:

  • 有人知道下载的是什么吗?(我不记得以前版本的母鹅有过这种行为)
  • 模型鹅是否需要在每次运行时下载(npm测试),还是在下一次运行(npm测试)中重用该结果?
  • 我能阻止他下载一些东西吗。理想情况下,我希望在沙箱env中运行我的单元测试,它没有访问web的权限(在码头中)。我可以在某个地方下载234 to并要求mockgoose重用它吗?

谢谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-03-16 19:09:58

我很确定这是一个问题后安装步骤的莫克鹅7,虽然我不能确定确切的什么。恢复到mockgoose ^6.0.0解决了这个问题。

更新

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

票数 2
EN

Stack Overflow用户

发布于 2021-02-17 09:29:25

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

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

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42797406

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档