2011-11-10 66 views
2

我們一直在使用Cassandra 0.7,並且自從cassandra 1.0.0的穩定版本出來以後,我們計劃升級到它。由於我們尚未投入生產,因此風險很低。我們使用了hector 0.7-29,它包含testutils包和一個EmbeddedServerHelper類,我們用它在我們的所有單元測試中啓動嵌入式服務器。Cassandra和hector升級到1.0並進行單元測試

但是,升級版的hector 1.0-1(用於cassandra 1.0.x)已經從其核心發行版中刪除了該軟件包(me.prettyprint.cassandra.testutils)。

我想知道使用新的hector 1.0-1 api客戶端進行單元測試的計劃。有沒有辦法再啓動cassandra嵌入式服務器?

感謝您的幫助。

回答

2

有一個新的「測試」模塊,用於保存EmbeddedSchemaLoader和EmbeddedServerHelper。我們將它們從核心中取出,以便它們可以在Hector之外使用(因爲模塊現在不直接依賴hector)。

https://github.com/rantav/hector/tree/master/test

讓我們知道一切是如何工作的。

+0

修復了一些更多的事情後,我結束了以下錯誤。我有libthrift v 0.7.0作爲最新版本的依賴項。 16:33:29,531錯誤AbstractCassandraDaemon:354 - 啓動期間遇到的異常 java.lang.NoSuchMethodError:org.apache.thrift.server.TServer。 (Lorg/apache/thrift/server/TServer $ AbstractServerArgs;) – bobbypavan

+0

Cassandra和hector都處於節儉0.6.1 - 您將需要降低節儉的可能性。 – zznate

+0

我必須在組org.apache.cassandra.deps中包含libthrift 0/5/0才能通過。由於cassandra.yaml不能有模式創建語句,加載模式的最佳方式是什麼?我正在考慮複製EmbeddedSchemaLoader中的代碼,以便我們的測試 – bobbypavan