2015-10-21 73 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。解决方法是将测试移动到一个包中。

相关问题