2015-10-21 4 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

Возможный дубликат [Что такое исключение Null Pointer Exception и как его исправить?] (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. Обходной путь заключается в переносе теста на пакет.

Смежные вопросы