Junit5 테스트 코드를 작성하고 테스트를 실행하였더니 아래와 같은 오류가 발생했다.
Exception in thread "main" java.lang.NoClassDefFoundError: org/junit/platform/engine/TestDescriptor
at java.base/java.lang.Class.forName0(Native Method)
at java.base/java.lang.Class.forName(Class.java:375)
at com.intellij.rt.junit.JUnitStarter.getAgentClass(JUnitStarter.java:241)
at com.intellij.rt.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:222)
at com.intellij.rt.junit.JUnitStarter.main(JUnitStarter.java:55)
Caused by: java.lang.ClassNotFoundException: org.junit.platform.engine.TestDescriptor
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:641)
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:188)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:520)
... 5 more
찾다보니 해당 에러는 명령줄 명령이 너무 길어서 그럴수 있다고 한다.
https://stackoverflow.com/questions/69844720/intellij-2021-2-3-exception-in-thread-main-java-lang-noclassdeffounderror-org
run command 길이가 OS limit를 넘으면 실행할 수 없게 된다고 한다. 이를 해결하기 위해서는 Run/Debug Configuration에서 Shorten command line의 옵션을 수정해야 했다.
그래서 아래와 같이 JAR manifest 옵션을 적용해 주었더니 잘 동작하는 것을 확인했다.

각 옵션의 기능은 아래와 같다.
내 프로젝트의 경우 @argfile이 적용되어 있었다. 하지만 이 옵션이 적용된 경우에도 종속성이 너무 많아서 명령줄 명령이 너무 길어진게 에러의 이유인듯하다.
https://orhun.nl/blog/IntelliJ+NoClassDefFoundError/