运行 mockgoose.prepareStorage 时 Mockgoose 下载 234mb
Mockgoose is downloading 234mb when running mockgoose.prepareStorage
我有一个节点应用程序可以访问 mongodb 使用 mocha 和 mockgoose 测试的 throwed mongoose。
我最近搬到了 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();
});
当我 运行 测试时,在 mockgoose.prepareStorage
步骤中,mockgoose 似乎正在下载一些东西。
BEFORE prepareStorage
AFTER prepareStorage
Completed: 0.1 % (0.2mb / 234.3mb
我想这与请求的 2 分钟超时有关。
我的问题是:
有人知道 mockgoose 在下载什么吗? (我不记得以前版本的 mockgoose 有这种行为)
mockgoose 是否需要在每次 运行(npm 测试)时下载此文件,或者结果是否会在下一个 运行s(npm 测试)中重复使用?
我能不能阻止他下载东西。理想情况下,我想 运行 在沙盒环境中进行我的单元测试,无法访问网络(在 docker 中)。我可以在某处下载 234mb 并让 mockgoose 重新使用它吗?
谢谢
我很确定这是 mockgoose 7 的 post-install 步骤的问题,尽管我不能确定到底是什么。恢复到 mockgoose ^6.0.0 修复了这个问题。
更新
问题是 mockgoose 第一次运行时必须下载 mongodb 源,这可能需要一段时间。您应该尝试将测试超时更新为较长的时间(5-10 分钟)。这确实解决了问题。幸运的是,这只需要一次。
我在这个问题上搜索了几个小时,但我终于找到了解决它的方法:
多次复制粘贴一个测试。在我的例子中,每个测试都有 10 秒的超时,这不足以使百分比达到 100%。
因此,如果您 运行 进行了足够多的测试(在我的例子中大约是 6 次),您将达到 100%。
一旦达到 100%,您可以再次 运行 它并且所有测试现在可以 运行 快速,因此您可以再次删除重复的测试!
我有一个节点应用程序可以访问 mongodb 使用 mocha 和 mockgoose 测试的 throwed mongoose。 我最近搬到了 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();
});
当我 运行 测试时,在 mockgoose.prepareStorage
步骤中,mockgoose 似乎正在下载一些东西。
BEFORE prepareStorage
AFTER prepareStorage
Completed: 0.1 % (0.2mb / 234.3mb
我想这与请求的 2 分钟超时有关。
我的问题是:
有人知道 mockgoose 在下载什么吗? (我不记得以前版本的 mockgoose 有这种行为)
mockgoose 是否需要在每次 运行(npm 测试)时下载此文件,或者结果是否会在下一个 运行s(npm 测试)中重复使用?
我能不能阻止他下载东西。理想情况下,我想 运行 在沙盒环境中进行我的单元测试,无法访问网络(在 docker 中)。我可以在某处下载 234mb 并让 mockgoose 重新使用它吗?
谢谢
我很确定这是 mockgoose 7 的 post-install 步骤的问题,尽管我不能确定到底是什么。恢复到 mockgoose ^6.0.0 修复了这个问题。
更新
问题是 mockgoose 第一次运行时必须下载 mongodb 源,这可能需要一段时间。您应该尝试将测试超时更新为较长的时间(5-10 分钟)。这确实解决了问题。幸运的是,这只需要一次。
我在这个问题上搜索了几个小时,但我终于找到了解决它的方法:
多次复制粘贴一个测试。在我的例子中,每个测试都有 10 秒的超时,这不足以使百分比达到 100%。 因此,如果您 运行 进行了足够多的测试(在我的例子中大约是 6 次),您将达到 100%。
一旦达到 100%,您可以再次 运行 它并且所有测试现在可以 运行 快速,因此您可以再次删除重复的测试!