Maven에서 JUnit5가 실행할 수 없었던 것을 해결한 메모.

환경 및 버전



Java - Java9
Eclipse - Oxygen.1a Release (4.7.1a)
JUnit - JUnit5

Maven 프로젝트에서 JUnit5를 사용하기 위해 다음을 pom.xml에 기술 한 후 여러 가지 설정 한 후 JUnit에서 빌드하면 오류가 나왔으므로 그 내용과 해결 방법입니다.
  <dependencies>
    <dependency>
      <groupId>org.junit.jupiter</groupId>
      <artifactId>junit-jupiter-engine</artifactId>
      <version>5.0.2</version>
      <scope>test</scope>
    </dependency>
  </dependencies>

오류 내용




Could not run test

No tests found with test runner 'JUnit5'

Eclipse 콘솔


ava.lang.NoClassDefFoundError: org/junit/platform/launcher/core/LauncherFactory
    at org.eclipse.jdt.internal.junit5.runner.JUnit5TestLoader.<init>(JUnit5TestLoader.java:31)
    at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
    at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:488)
    at java.base/java.lang.Class.newInstance(Class.java:558)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.createRawTestLoader(RemoteTestRunner.java:368)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.createLoader(RemoteTestRunner.java:363)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.defaultInit(RemoteTestRunner.java:307)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.init(RemoteTestRunner.java:222)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:206)
Caused by: java.lang.ClassNotFoundException: org.junit.platform.launcher.core.LauncherFactory
    at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:582)
    at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:185)
    at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:496)
    ... 11 more

해결 방법



pom.xml에 다음을 추가합니다.
    <dependency>
        <groupId>org.junit.platform</groupId>
        <artifactId>junit-platform-launcher</artifactId>
        <version>1.0.1</version>
        <scope>test</scope>
    </dependency>

JUnit5에서는 3개의 하위 프로젝트로 헤어졌기 때문에 JUnit5의 JUnit Jupiter만을 종속성 정의에 추가한 것만으로는 부족한 것 같습니다.

해결에 이끌어 준 기사



· JUnit5
· JUnit 4로 소모된 당신에게 주는 JUnit 5 입문

좋은 웹페이지 즐겨찾기