我有一个访问mongodb的节点应用程序,用mocha和mockgoose测试抛出的猫鼬。我最近搬到了莫奇鹅7.0.5。我跟踪了github的开始,并将我的摩卡超时时间提高到了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步骤中,模拟鹅似乎正在下载一些东西。
BEFORE prepareStorage
AFTER prepareStorage
Completed: 0.1 % (0.2mb / 234.3mb我想这与所要求的2分钟超时有关。
我的问题是:
谢谢
发布于 2017-03-16 19:09:58
我很确定这是一个问题后安装步骤的莫克鹅7,虽然我不能确定确切的什么。恢复到mockgoose ^6.0.0解决了这个问题。
更新
问题是,第一次运行mockgoose必须下载mongodb源代码,这可能需要一段时间。您应该尝试将测试的超时时间更新为长时间(5-10分钟)。这确实解决了这个问题。幸运的是,这只需要一次。
发布于 2021-02-17 09:29:25
我在这个问题上搜索了几个小时,但最终还是找到了一个解决问题的肮脏方法:
复制粘贴一次测试几次。在我的例子中,每个测试都有一个10s的超时时间,这还不足以使这个百分比达到100%。因此,如果您运行足够的测试(在我的例子中大约6),您将使它达到100%。
一旦你达到100%,你可以再次运行它和所有的测试可以运行快,所以你可以删除重复的测试再次!
https://stackoverflow.com/questions/42797406
复制相似问题