2013-10-24 52 views
0

我想用JUnit外部資源測試Cassandra。我有兩個類CassandraExternalResource和TestCassandra。下面是從TestCassandra片段:junit等到外部資源準備就緒

public class TestCassandra { 

     @Rule 
     public CassandraExternalResource cassandraExternalResource = new CassandraExternalResource(); 


     @Test 
     public void test() throws InterruptedException { 
      System.out.println("During Test"); 
     } 
    } 

在CassandraExternalResource的方法之前,我開始卡桑德拉服務器使用一個單獨的線程。我想要的是讓測試用例等到cassandra服務器啓動並運行。

由於服務器需要一些時間才能啓動,所以測試用例在服務器準備就緒之前就開始運行。

任何幫助表示讚賞。

回答

1

您可以通過對cassandra服務器執行ping操作直到準備就緒,從而擴展規則的before方法。

+0

我如何理解Cassandra服務器已準備就緒,並且自從我使用單獨的線程啓動Cassandra後,如何才能ping通服務器準備好? –

+0

這取決於「準備就緒」的定義。您可以嘗試連接cassandra,直到獲得連接。 –