junit 5 控制台启动器抛出错误 "Caused by: java.lang.ClassNotFoundException"

junit 5 console launcher throwing an error "Caused by: java.lang.ClassNotFoundException"

我正在使用 java 项目的已编译 jar 库,并尝试通过控制台启动器 运行 进行 junit 5 测试。当我右键单击并 运行 作为 junit 测试时,相同的测试有效,但通过控制台启动器它抛出以下错误。

这就是我用来编译程序的,它没有错误地符合要求

javac -encoding UTF8 -cp /abc/Junit/lib/*:/var/Unit/lib/* /abc/Unit/ /Junit/test/BuildTest.java

这就是我运行测试的方式

 java -jar /abc/Junit/lib/junit-platform-console-standalone-1.6.0.jar --classpath /abc/Junit/lib/*:/abc/Unit/lib/*:/abc/Junit/test --include-classname ".*" --scan-classpath

这是我遇到的错误

Thanks for using JUnit! Support its development at https://junit.org/sponsoring

.
+-- JUnit Jupiter [OK]
|     '-- buildTests [X] com.build.Info
'-- JUnit Vintage [OK]

Failures (1):
JUnit Jupiter:buildTests
ClassSource [className = 'com.buildTests', filePosition = null]
=> java.lang.NoClassDefFoundError: com.build.VersionInfo
   java.lang.Class.getDeclaredFields(Class.java:868)
   org.junit.platform.commons.util.ReflectionUtils.getDeclaredFields(ReflectionUtils.java:1334)
   org.junit.platform.commons.util.ReflectionUtils.findAllFieldsInHierarchy(ReflectionUtils.java:1092)
   org.junit.platform.commons.util.ReflectionUtils.findFields(ReflectionUtils.java:1080)
   org.junit.platform.commons.util.AnnotationUtils.findAnnotatedFields(AnnotationUtils.java:371)
   [...]
 Caused by: java.lang.ClassNotFoundException: com.build.VersionInfo
   java.net.URLClassLoader.findClass(URLClassLoader.java:610)
   java.lang.ClassLoader.loadClassHelper(ClassLoader.java:935)
   java.lang.ClassLoader.loadClass(ClassLoader.java:880)
   java.net.FactoryURLClassLoader.loadClass(URLClassLoader.java:1225)
   java.lang.ClassLoader.loadClass(ClassLoader.java:863)
   [...]

  Test run finished after 73 ms
  [         3 containers found      ]
  [         0 containers skipped    ]
  [         3 containers started    ]
  [         0 containers aborted    ]
  [         2 containers successful ]
  [         1 containers failed     ]
  [         1 tests found           ]
  [         0 tests skipped         ]
  [         0 tests started         ]
  [         0 tests aborted         ]
  [         0 tests successful      ]
  [         0 tests failed          ]

终于找到报错的原因了。问题是在 运行 测试时没有提供实际的 jar 和使用通配符。它必须是 blah/lib/core.jar 而不是 blah/lib/*。希望这对以后的人有所帮助。