2015-04-05 14 views
1

我開始編寫單元測試沿https://github.com/neo4jrb/neo4j/wiki/How-To-TestNeo4j和Ruby:我如何加速單元測試?

的方法之一線有很慢(每個測試10秒)和其他不刪除標籤(也可能是其他的東西)

燦任何人都會提出更精細的方法?我注意到,在覈心neo4j材料中,java文檔描述了methods that create and tear down temporary databases,但我沒有看到從(非常漂亮的)ruby和rails neo4j gem訪問這些文件的方法。也許通過低級別的REST API?很難弄清楚可用的api電話。

回答

1

因此,您可能可以在交易中包括您的測試,這是在Ruby中使用ActiveRecord進行測試的典型方法。這可能會更高效,但它也應該有助於保持數據庫的清潔。

但是你是對的,無常數據庫是Neo4j爲臨時數據庫提供的測試工具。但我認爲只有在運行JRuby時纔可用。我也碰到這個運行,雖然:

https://groups.google.com/forum/#!topic/neo4j/7xeEPWEiqD0

可鏈接到一個項目,它可以讓你啓動的「內存」模式的Neo4j服務器(使用無常數據庫):

https://github.com/jexp/neo4j-in-memory-server

這是Neo4j 2.0.0的示例,所以我不知道它是否適用於更高版本,但它可能值得您爲測試數據庫拍攝。

編輯:我剛剛想到另一件事是使用vcr寶石:

https://github.com/vcr/vcr

它基本上記錄了所有到您的服務器的請求,然後播放他們回來。這對於結果是冪等的API端點非常適用,但是如果將它用於Neo4j等數據庫,則應確保在每次測試運行前您的測試都要清除數據庫,以便始終開始新的數據庫