2014-10-09 26 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