SpringJUnit4ClassRunner.runleaf метод не найден - PullRequest
0 голосов
/ 18 мая 2018

Я получаю сообщение об ошибке при запуске тестового кода с использованием скрипта ant.Но если я запускаю testMethods, используя eclipse отдельно по RUN AS -> JUNIT , это возвращает правильный ответ.

java.lang.NoSuchMethodError: org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runLeaf(Lorg/junit/runners/model/Statement;Lorg/junit/runner/Description;Lorg/junit/runner/notification/RunNotifier;)V
    at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:252)
    at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:94)
    at org.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks.evaluate(RunBeforeTestClassCallbacks.java:61)
    at org.springframework.test.context.junit4.statements.RunAfterTestClassCallbacks.evaluate(RunAfterTestClassCallbacks.java:70)
    at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run(SpringJUnit4ClassRunner.java:191)

Я использую junit: 4.12 и spring-test: 4.3.16.RELEASE библиотека.Я искал решение, но каждое решение дает мне ответ, чтобы использовать версию junit больше junit: 11 .Но я использую 4.12, но все еще получаю ошибку.

1 Ответ

0 голосов
/ 14 июля 2018

Проблема вызвана зависимостью pom.Это не сработало, что бы вы ни изменили в своей версии junit, потому что есть некоторые другие зависимости pom, которые косвенно вводили старую версию junit перед загрузкой зависимости Junit, которую вы явно определили в POM.Чтобы увидеть это, введите класс SpringJUnit4ClassRunner, а затем введите его суперкласс BlockJUnit4ClassRunner, вы обнаружите, что он не лежит в пакете jar jit, который вы объявили в POM.

Итак, чтобы решить эту проблему,вы должны выяснить, какая косвенная зависимость pom представляет пакет jar, который вы найдете в абзаце 1: зависимость mvn: дерево , а затем использовать exclusion , чтобы исключить его в соответствующей зависимости pom, напримерas:
<exclusion> <groupId>org.junit</groupId> <artifactId>com.springsource.org.junit</artifactId> </exclusion>

Теперь все должно работать правильно!(Если нет, вам может понадобиться mvn clean install )

...