【问题标题】:junit 5 console launcher throwing an error "Caused by: java.lang.ClassNotFoundException"junit 5 控制台启动器抛出错误“原因:java.lang.ClassNotFoundException”
【发布时间】:2020-03-12 13:45:10
【问题描述】:

我正在使用 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          ]

【问题讨论】:

    标签: junit5


    【解决方案1】:

    最后,能够弄清楚抛出错误的原因。问题是在运行测试时没有给出实际的 jar 和使用通配符。它必须是 blah/lib/core.jar 而不是 blah/lib/*。希望这对将来的人有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-01-11
      • 2019-10-23
      • 2019-05-17
      • 2015-04-22
      • 1970-01-01
      相关资源
      最近更新 更多