2016-08-10 2 views
0

Я очень разочаровываюсь с ошибкой, когда пытаюсь запустить свои модульные тесты с помощью Cucumber.Не удается запустить тест Junit с огурцом из-за странной ошибки

Я получаю эту ошибку:

java.lang.NoClassDefFoundError: javax/enterprise/context/spi/Contextual 
at java.lang.Class.getDeclaredConstructors0(Native Method) 
at java.lang.Class.privateGetDeclaredConstructors(Class.java:2671) 
at java.lang.Class.getConstructor0(Class.java:3075) 
at java.lang.Class.getConstructor(Class.java:1825) 
at org.junit.internal.builders.AnnotatedBuilder.buildRunner(AnnotatedBuilder.java:104) 
at org.junit.internal.builders.AnnotatedBuilder.runnerForClass(AnnotatedBuilder.java:86) 
at org.junit.runners.model.RunnerBuilder.safeRunnerForClass(RunnerBuilder.java:59) 
at org.junit.internal.builders.AllDefaultPossibilitiesBuilder.runnerForClass(AllDefaultPossibilitiesBuilder.java:26) 
at org.junit.runners.model.RunnerBuilder.safeRunnerForClass(RunnerBuilder.java:59) 
at org.junit.internal.requests.ClassRequest.getRunner(ClassRequest.java:33) 
at org.eclipse.jdt.internal.junit4.runner.JUnit4TestLoader.createUnfilteredTest(JUnit4TestLoader.java:84) 
at org.eclipse.jdt.internal.junit4.runner.JUnit4TestLoader.createTest(JUnit4TestLoader.java:70) 
at org.eclipse.jdt.internal.junit4.runner.JUnit4TestLoader.loadTests(JUnit4TestLoader.java:43) 
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:444) 
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:678) 
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:382) 
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:192) 
Caused by: java.lang.ClassNotFoundException: javax.enterprise.context.spi.Contextual 
    at java.net.URLClassLoader.findClass(URLClassLoader.java:381) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424) 
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357) 
    ... 17 more 

я уже пытался добавить LIB к моему пути к классам, но эта ошибка все еще бросить с другой пропавшей Lib, а другой и т.д ...

Я вы делали поиск, и ничего из этого libs не требуется Cucumber. Это мой тестовый класс.

@RunWith(Runner.class) 
@CucumberOptions(monochrome = true, features = { "src/test-integration/resources/scenarii" }, glue = { 
     "info.scandi.fusion.cucumber" }, plugin = { "pretty" }) 
public class AllTests { 

} 

Пути кажутся правильными. И, как вы можете видеть, мои определения шагов определены в банке, которую я импортировал в свой проект.

Моя ошибка, кажется, связана с этим stackoverflow question. Но я не использую пакет корневых корней.

Любая помощь была бы действительно оценена.

ответ

0

Проблема возникает из SLF4J Lib. Я не знаю почему. Я удаляю его, потому что он больше не используется. Итак, теперь все работает так, как ожидалось. Думает.

1

Это не ошибка огурца. Вам не хватает зависимости, необходимой для выполнения.

Мой подход к устранению этой проблемы заключается в том, чтобы удалить как можно больше конфигурации Cucumber до тех пор, пока ошибка не исчезнет.

Я бы оставил @RunWith(Cucumber.class), а затем посмотрел, что произошло.

Глядя на ваш класс JUnit, я заметил, что вы используете бегун под названием Runner.class я не знаю, что бегун это, но я знаю, что это не JUnit Огурцы бегуна.

Хорошая отправная точка для начала работы с огурцом https://github.com/cucumber/cucumber-java-skeleton

+0

Thx для вашего ответа. Класс runner - это специальный класс, который расширяет огурец и добавляет некоторые функции. Я использую его в других проектах, и он работает отлично, но, похоже, он не работает. Я абсолютно уверен, что это не мой бегун, который зависит от этого класса. Ссылка, которую я предоставляю, показывает, что огурец выбрасывает такую ​​ошибку, если путь объекта - это просто «огурец». Это не мое дело. Но если я добавлю недостающую зависимость в свой путь к классам. Я попадаю в ту же самую недостающую библиотеку, что и в ссылке, которую я предоставляю. Я постараюсь расследовать мой бегун – Scandinave

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