2015-10-21 93 views
1

我正在對我正在使用的項目使用elasticsearch,但不幸的是,測試設置中存在相當令人沮喪的問題。ElasticsearchIntegrationTest失敗並出現NullPointerException

我有一個測試類,它看起來像下面

import org.elasticsearch.test.ElasticsearchIntegrationTest; 
import org.junit.Test; 

public class JavaTest extends ElasticsearchIntegrationTest { 

    @Test 
    public void testSomething() throws Exception { 

    } 
} 

這是我build.sbt

"org.elasticsearch" % "elasticsearch" % "1.7.2" % "test" classifier "tests", 
    "com.carrotsearch.randomizedtesting" % "randomizedtesting-runner" % "2.1.17" % "test", 
    "org.elasticsearch" % "elasticsearch" % "1.7.2", 
    "org.apache.lucene" % "lucene-test-framework" % "4.10.4" % "test", 
    "org.hamcrest" % "hamcrest-all" % "1.3" 

這是從控制檯輸出

Oct 21, 2015 4:20:27 PM com.carrotsearch.randomizedtesting.RandomizedRunner runSuite 
SEVERE: Panic: RunListener hook shouldn't throw exceptions. 
java.lang.NullPointerException 
    at org.elasticsearch.test.junit.listeners.LoggingListener.testRunStarted(LoggingListener.java:50) 
    at com.carrotsearch.randomizedtesting.RandomizedRunner.runSuite(RandomizedRunner.java:639) 
    at com.carrotsearch.randomizedtesting.RandomizedRunner.access$200(RandomizedRunner.java:140) 
    at com.carrotsearch.randomizedtesting.RandomizedRunner$2.run(RandomizedRunner.java:587) 

我沒有想法這裏發生了什麼,文檔告訴我只繼承ElasticsearchIntegrationTest類,我會去去吧。

有沒有人有任何想法,這是怎麼回事?關於這個錯誤的信息非常少,我沒有找到任何有用的東西。

+1

可能重複[什麼是空指針異常,以及如何解決它?](http://stackoverflow.com/questions/218384/what-is-a-null-pointer-exception-and-how -do-i-fix-it) – StackFlowed

+0

哪行代碼導致該問題? – AbtPst

+0

你只是想運行JavaTest類嗎? – AbtPst

回答

1

你的測試類是否位於默認包中?

NPE發生在LoggingListener.java:50(如您的堆棧跟蹤顯示)。此行包含下面的一段代碼:

previousPackageLoggingMap = processTestLogging(description.getTestClass().getPackage().getAnnotation(TestLogging.class)); 

如果你的測試類是在默認包中(例如有一個在你的類沒有包語句),調用getPackage()將返回null - 由此導致NPE。解決方法是將測試移動到一個包中。

相關問題