2012-04-26 47 views
1

我正在使用的應用程序是tomcat類web應用程序上的Velocity/Spring MVC/Mongo。嵌入式Mongo或安裝實例的集成測試

我能夠在嵌入式蒙戈運行我的集成測試,使用EmbedMongo這需要更長的時間來運行所有測試,說約1分鐘,但上安裝Mongo的測試數據庫上,它需要大約15秒。

在創建新數據庫(在這種情況下,在同一個實例中的測試數據庫)使用嵌入式數據庫進行集成測試真的有什麼好處是可以忽略的嗎?實際上,測試可以自己創建數據庫和所需的集合。

除了在不需要常規安裝的CI框上使用嵌入式Mongo,我沒有看到任何好處。

任何人都可以分享任何想法請。

感謝 拉夫

回答

0

有了你有一個單獨的安裝實例涉及的過程建立和拆除的費用,你會希望儘量減少你的測試套件,因此使用嵌入式數據庫的好處。

+0

是的,這是真的,但在Mongo的情況下,設置/拆卸成本可以忽略不計。在開發盒上,它始終運行,所以在同一個實例中有另一個測試數據庫是一個微不足道的成就。所以,我仍然感到困惑是否嵌入式芒果是一個好主意 – user724503 2012-04-27 12:09:30

1

看看這個鏈接: https://stackoverflow.com/a/9830861/82609

這似乎不錯,但MongoDB是開始,每次測試之間關閉。

爲了提高速度,您可能想要做的是啓動並關閉整個測試套件一次。 我的意思是:在測試之間保持MongoDB實例。


但是你不希望你的測試是相互依賴的。所以你可以做的是使用不同的數據庫名稱(UUID),這樣最後你就可以運行一個MongoDB實例,並有許多不同的數據庫,每個測試都有一個。

或者您可以在每次測試之間清理數據庫。

+0

我該如何清潔它? – 2015-01-14 06:23:47