반응형
2019-09-19에 STS 4.4.0 이 릴리즈 되어 사용해보았다.
Junit 5 실행 시 다음과 같은 에러가 발생했다.
java.lang.NoClassDefFoundError: org/junit/platform/commons/PreconditionViolationException
at org.eclipse.jdt.internal.junit5.runner.JUnit5TestLoader.createFilteredTest(JUnit5TestLoader.java:70)
at org.eclipse.jdt.internal.junit5.runner.JUnit5TestLoader.createTest(JUnit5TestLoader.java:64)
at org.eclipse.jdt.internal.junit5.runner.JUnit5TestLoader.loadTests(JUnit5TestLoader.java:53)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:525)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:763)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:463)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:209)
Caused by: java.lang.ClassNotFoundException: org.junit.platform.commons.PreconditionViolationException
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:583)
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521)
... 7 more
해당 에러가 발생한 지점은 STS의 plugins/org.eclipse.jdt.junit5.runtime_1.0.600.v20190610-0439.jar 에서 junit 5을 실행할 때 org/junit/platform/commons/PreconditionViolationException 파일이 없어서 나는 에러이다.
해당 Exception 클래스는 junit-platform-commons 1.5.0 이후 추가된 클래스이다. (원래는 org/junit/platform/commons/util/PreconditionViolationException 위치에 있었다.)
Spring boot 2.1.8까지 바라보는 junit5 pom버전은 5.3.2 이고 해당 버전까지는 junit-platform-commons 1.3.2를 바라보고 있다.
따라서 STS 4.4.0에서 junit 5를 쓰는 경우 Spring boot가 제공하는 버전을 그대로 사용하면 IDE가 위와 같은 오류를 뱉게 된다.
Spring boot 사용 프로젝트의 pom.xml의 properties에 다음 한 줄 추가해서 쓰면 된다.
<properties>
<junit-jupiter.version>5.5.2</junit-jupiter.version>
</properties>
Spring Boot 2.2.0이 릴리즈 되면 위 버전이 기본 설정되기 때문에 해당 문제가 발생하지 않는다.
반응형
'Study > Java' 카테고리의 다른 글
Reactor 공부하기 위한 프로젝트 설정 (0) | 2019.12.20 |
---|---|
Spring Data R2DBC 써보기 (0) | 2019.12.11 |
Spring Boot 2.2 Release Notes (0) | 2019.10.18 |
JDK 13 New Features (0) | 2019.09.25 |
thymeleaf-layout-direct 성능 문제 (groovy 성능 문제) (0) | 2019.09.24 |
Spring RestTemplate으로 요청 시 302 redirect 된 페이지의 response 결과받기 (0) | 2019.08.09 |
Spring Data JDBC로 Spring Data Jpa를 대체할 수 있을까? (0) | 2019.07.28 |
JDK 12 New Features (0) | 2019.07.18 |
Spring Boot servlet filter 사용하기 (0) | 2019.07.03 |
RestTemplate 응답 log 확인하기 (0) | 2019.06.20 |