본문 바로가기
스프링부트 프로젝트

JUnit NoSuchMethod 에러 해결

by Nicole 2023. 11. 19.

STS 4.20.1 버전에서 JUnit을 실행 시 아래와 같은 에러가 뜬다.

NoSuchMethodError: 'java.util.Set org.junit.platform.engine.TestDescriptor.getAncestors()

 

검색해보니, STS 의 최신 4.20.1 버전에서 지원하지 않는 라이브러리 메소드를 사용해서 그런 것이라고 한다.

4.19.0 버전으로 downgrade하는 방법도 있지만,

방법을 찾기도 쉽지 않았고, stackoverflow에서 dependencies를 추가하는 방법을 찾았다.

 

build.gradle 파일에서 아래 dependency를 추가해준다.

 

위와 같은 오류가 발생했던 이유는, junit-platform-launcher가 없는 경우,

Eclipse에서 자체적으로 junit-platform-launcher를 추가하는데, 이 버전이 junit-jupiter의 버전과 맞지 않을 수 있다고 한다.

나는 위의 junit-jupiter:5.9.3 라이브러리도 세팅되어 있지 않았기 때문에 추가해줬다.

아마 애초에 저 첫번째 라이브러리도 없었던게 문제였던 것으로 보인다.

 

 

 

 

 

 

출처

1. 

https://github.com/eclipse/buildship/issues/1265

 

NoSuchMethodError when running a JUnit 5.9.3 test in Eclipse 2023-09 (4.29) · Issue #1265 · eclipse/buildship

Running a JUnit 5.9.3 test (e.g. via right-click and choosing Run As > JUnit Test) fails in Eclipse 2023-09 (4.29) with NoSuchMethodError. build.gradle to reproduce this issue: apply plugin: 'java'...

github.com

 

2.

https://stackoverflow.com/questions/77241793/nosuchmethoderror-java-util-set-org-junit-platform-engine-testdescriptor-getan

 

NoSuchMethodError: 'java.util.Set org.junit.platform.engine.TestDescriptor.getAncestors()

I get this error while running a JUnit test in Spring Tool Suite (4.20.0). Test runs fine, but this error is thrown at the end - java.lang.NoSuchMethodError: 'java.util.Set org.junit.platform.engine.

stackoverflow.com

 

댓글