2014-10-09 54 views
0

我刚刚写了一个非平凡reduce函数,其中rereduce执行路径与标准reduce不同。当rereduce为真时测试减少函数

据我了解,rereduce只在某些情况下执行;特别是合并在多个节点或大范围的密钥上执行的操作reduce

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

回答

2

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

这是一个副作用并且很有趣,但是您也可以很好地了解索引和查看请求需要多长时间,并且了解应用程序如何在规模上执行操作。负载测试永远不会受伤。

+1

到此为止带着这个。看起来它在启动之前只需要100个左右的文档(至少,它对我来说是这样 - 我不知道这个标准是什么),正如你所说的那样,无论如何用真实数量的文档进行测试都是非常有用的。 – 2014-10-12 22:58:12

0

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

  • 一个JS-IDE(Webstorm
  • 行为驱动测试(jasmine
  • JSON测试文档的全套
  • 自书面亚军脚本嘲笑呼吁地图并减少功能。
  • 一个外部版本控制系统来管理对查询的更改。

这样我就可以回归和单元测试我的地图并减少函数,同时支持一些复杂度,只能在couchdb中不支持。

+0

谢谢 - 也许我应该在问题中指定,但我并不特别针对基于单元测试的解决方案。原因是它会假设我的测试工具和嘲笑的反应是正确的。我真正需要的是与CouchDB本身进行适当的端到端集成测试。在没有办法强制参数的情况下,我可能只需要上传大量的数据。 – 2014-10-10 11:20:53