Javascript 运行Mockgoose.prepareStorage时,Mockgoose正在下载234mb
我有一个可以访问mongodb的节点应用程序,mongoose使用mocha和mockgoose进行了测试。 我最近搬到了Mockgoose7.0.5。 我遵循github的入门指南,将我的摩卡咖啡超时时间增加到2分钟 以下是我测试中的before函数: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
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下载来预下载它。我会通知你的