Couchdb 当REREREDUCE为真时测试REDUCT函数

Couchdb 当REREREDUCE为真时测试REDUCT函数,couchdb,Couchdb,我刚刚编写了一个非常重要的reduce函数,其中的rereduce执行路径不同于标准的reduce 我的理解是,rereduce仅在某些情况下执行;具体来说,合并减少跨多个节点或大范围键执行的操作 由于我的本地开发环境运行在具有相对较小数据集的单个节点上,因此如何在重新导出场景中有效地测试reduce函数的行为?您可以编写一个脚本来生成大量真实的虚拟数据。我能够测试map reduce的唯一方法是使用真实或虚假的数据,但其中有很多 这是一个附带的好处,而且非常有趣,但你也可以很好地了解建立索引和

我刚刚编写了一个非常重要的reduce函数,其中的
rereduce
执行路径不同于标准的
reduce

我的理解是,
rereduce
仅在某些情况下执行;具体来说,合并
减少跨多个节点或大范围键执行的
操作


由于我的本地开发环境运行在具有相对较小数据集的单个节点上,因此如何在重新导出场景中有效地测试reduce函数的行为?

您可以编写一个脚本来生成大量真实的虚拟数据。我能够测试map reduce的唯一方法是使用真实或虚假的数据,但其中有很多


这是一个附带的好处,而且非常有趣,但你也可以很好地了解建立索引和查看请求所需的时间,并了解你的应用程序在规模上的表现。负载测试从来没有坏处。

我不在couchdb中测试我的脚本。我改用:

  • 一个JS-IDE()
  • 行为驱动测试()
  • 一整套JSON测试文档
  • 自行编写的运行程序脚本,模拟对map和reduce函数的调用
  • 用于管理查询更改的外部版本控制系统

通过这种方式,我可以回归和单元测试我的map和reduce函数,同时支持couchdb所不支持的复杂程度

谢谢-也许我应该在问题中详细说明,但我不是特别寻找基于单元测试的解决方案。这样做的原因是,它假设我的测试工具和mock的响应是正确的。我真正需要的是对CouchDB本身进行适当的端到端集成测试。在没有办法强制参数的情况下,我可能只会上传大量数据。最后还是这样做了。似乎只需要100个左右的文档就可以了(至少在我的情况下是这样的——我不知道标准是什么),而且,正如您所说,使用实际数量的文档进行测试是很有用的。