【发布时间】:2014-12-06 07:15:10
【问题描述】:
我正在使用 Mocha 在我的 Express(好吧,Keystone)服务器上运行测试,该服务器使用 Mongoose/MongoDB。在 before Mocha 钩子中,我删除了数据库,然后初始化模型,然后加载了一些固定装置,所有这些都在 async.series 调用中控制,因此我确信这些事情是按顺序发生的。
其中一个测试每隔一次运行就会失败。测试进行 API 调用,对数据库执行地理查询。它失败了:
․{ [MongoError: Unable to execute query: error processing query: ns=test.locations limit=50 skip=0
Tree: GEONEAR field=lnglat.geo maxdist=5000 isNearSphere=0
Sort: {}
Proj: {}
planner returned error: unable to find index for $geoNear query] name: 'MongoError' }
․TypeError: Cannot read property 'length' of undefined
然后在下一次运行时成功。然后下一个它失败了。等等,总是如此。
有什么方法可以检查数据库是否已准备好在其上运行这些测试?对于奖励积分,究竟是什么导致了这种持续的变化?
【问题讨论】:
标签: node.js mongodb mongoose mocha.js