JUnit 테스트시 java.lang.ExceptionInInitializerError 에러

국물빌런·2020년 3월 1일
0

JUnit 테스트 중에 아래와 같은 에러로 고생중이다.
java.lang.ExceptionInInitializerError
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
at org.junit.internal.builders.AnnotatedBuilder.buildRunner(AnnotatedBuilder.java:31)
at org.junit.internal.builders.AnnotatedBuilder.runnerForClass(AnnotatedBuilder.java:24)
at org.junit.runners.model.RunnerBuilder.safeRunnerForClass(RunnerBuilder.java:57)
at org.junit.internal.builders.AllDefaultPossibilitiesBuilder.runnerForClass(AllDefaultPossibilitiesBuilder.java:29)
at org.junit.runners.model.RunnerBuilder.safeRunnerForClass(RunnerBuilder.java:57)
at org.junit.internal.requests.ClassRequest.getRunner(ClassRequest.java:24)
at org.eclipse.jdt.internal.junit4.runner.JUnit4TestLoader.createUnfilteredTest(JUnit4TestLoader.java:90)
at org.eclipse.jdt.internal.junit4.runner.JUnit4TestLoader.createTest(JUnit4TestLoader.java:76)
at org.eclipse.jdt.internal.junit4.runner.JUnit4TestLoader.loadTests(JUnit4TestLoader.java:49)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:526)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:770)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:464)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:210)
Caused by: java.lang.IllegalStateException: SpringJUnit4ClassRunner requires JUnit 4.12 or higher.
at org.springframework.util.Assert.state(Assert.java:73)
at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.(SpringJUnit4ClassRunner.java:104)
... 17 more

처음에는 콘솔로그에도 안나오고 그냥 JUnit테스트 에러만 계속 났는데 콘솔로그로 찍는 버튼이 있더라.
암튼 로그 내용은 위와 같다.
곰곰히 읽어보니 해당 에러가 보인다.
Caused by: java.lang.IllegalStateException: SpringJUnit4ClassRunner requires JUnit 4.12 or higher.
SpringJUnit4ClassRunner을 쓰려면 jUnit을 4.12 이상 써야한단다.
pon.xml을 확인해봤다.
4.12이다. 시키는대로 4.12를 썻는데 왜 나를 괴롭히는가..
maven dependency를 확인해봤다.
4.7이다..
maven이놈이 pom.xml에 시킨대로 안하고 자기 멋대로다.
아무래도 maven버그인것 같다.
그럼 이놈을 어떻게 해야 4.12로 업그레이드를 할까..
일단 maven update를 해봤는데 소용이 없다.
JUnit을 지워보자
.M2디렉토리가서 junit 4.7을 지우고 다시 pom.xml을 빌딩했더니 다시 4.7을 받네..?
혹시나 싶어 pom.xml을 다시 확인..
4.12 디펜던시 아래쪽에 4.7이 디펜던시가 하나 더있다.
maven이 아니라 내가 버그였네..
암튼 4.7 디펜던시를 지워주니 잘 된다.

profile
국물을 달라

0개의 댓글