当前位置: 首页 > 面试题库 >

junit中的java.lang.NoClassDefFoundError

汪跃
2023-03-14
问题内容

我在junit测试代码中的Java中收到此错误。我在网上查了一下,它说我需要在类路径中添加junit.jar。

在Eclipse中,我已将其添加到“项目属性”窗口的类路径中,但仍然收到初始化错误。我该怎么办..?

这是错误的完整记录:

java.lang.NoClassDefFoundError: org/hamcrest/SelfDescribing
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClassCond(Unknown Source)
    at java.lang.ClassLoader.defineClass(Unknown Source)
    at java.security.SecureClassLoader.defineClass(Unknown Source)
    at java.net.URLClassLoader.defineClass(Unknown Source)
    at java.net.URLClassLoader.access$000(Unknown Source)
    at java.net.URLClassLoader$1.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at org.junit.internal.builders.JUnit4Builder.runnerForClass(JUnit4Builder.java:13)
    at org.junit.runners.model.RunnerBuilder.safeRunnerForClass(RunnerBuilder.java:57)
    at org.junit.internal.builders.AllDefaultPossibilitiesBuilder.runnerForClass(AllDefaultPossibilitiesBuilder.java:29)
    at org.junit.runners.model.RunnerBuilder.safeRunnerForClass(RunnerBuilder.java:57)
    at org.junit.internal.requests.ClassRequest.getRunner(ClassRequest.java:24)
    at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.<init>(JUnit4TestReference.java:32)
    at org.eclipse.jdt.internal.junit4.runner.JUnit4TestClassReference.<init>(JUnit4TestClassReference.java:25)
    at org.eclipse.jdt.internal.junit4.runner.JUnit4TestLoader.createTest(JUnit4TestLoader.java:41)
    at org.eclipse.jdt.internal.junit4.runner.JUnit4TestLoader.loadTests(JUnit4TestLoader.java:31)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:452)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)
Caused by: java.lang.ClassNotFoundException: org.hamcrest.SelfDescribing
    at java.net.URLClassLoader$1.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    ... 25 more

问题答案:
  1. 在Package Explorer中右键单击您的项目>单击Properties
  2. 转到Java Build Path> Libraries选项卡
  3. 点击“添加库”按钮
  4. 选择JUnit
  5. 点击下一步。
  6. 在下拉按钮JUnit4或其他新版本中选择。
  7. 单击完成。
  8. 那好吧


 类似资料:
  • 我在Spring Boot应用程序中为我的服务编写了一个JUnit5测试。我将@mockBean用于模拟PasswordEncoder和其他bean,但获得了NullPointerException。 我总是在“when”调用期间获得NullPointerException:when(compterepository.getByLogin(anyString())).ThenReturn(opti

  • 问题内容: 我设法找到了如何在jUnit 4中制作TestSuite的方法,但是我真的很想念v3可能将套件包装在TestSetup中的可能性。 关于如何为jUnit 4中的一组测试用例执行某些@ BeforeClass / @ AfterClass设置的任何想法吗? 即 不幸的是,以上代码片段无法正常工作。仅适用于每个测试类别。 问题答案: 这是我所拥有的,运行正常。 这是我的测试套件1(对测试套

  • 问题内容: 我写单元测试,并希望使用和一个测试类。 不幸的是,以下操作无效: 有没有办法在一个测试类中同时使用Mockito和JUnitParams? 问题答案: 您不能执行此操作,因为根据规范,您不能将相同的注释两次放置在相同的注释元素上。 那么,解决方案是什么?解决的办法是只放一个你无法忍受的赛跑者,然后用其他东西代替。对于您的情况,我想您将删除并以编程方式执行此操作。 实际上,它唯一要做的就

  • 问题内容: 我正在为我的项目使用Maven并存在以下问题: 我想在测试报告中查看我的JUnit测试(log4j,System.out等)的日志记录输出。你有什么想法要实现吗? 谢谢 ;-) 问题答案: 我相信您可以使用maven surefire插件配置键 redirectTestOutputToFile重定向 测试的输出(),然后在中找到输出 在插件文档中查看有关此内容的更多信息 在一个摘要中:

  • 在我的实现类中,我有一个读写锁定义,如下所示, 我在一个名为的方法中使用它, 正如我所说的,是null,但是rwLock是初始化的。请解释Mockito是如何发生这种情况的。理想的方法是什么?

  • 问题内容: 我们有很多使用JUnit 3 编写的集成测试,尽管我们现在使用 4.4 运行它们。其中一些需要在类中的所有测试完成之后运行的tearDown方法(以释放一些公共资源)。 我看到这可以在junit 4中使用@AfterClass(org.junit)完成。但是,将其混入扩展TestCase(junit.framework。*)的现有junit 3测试中似乎无效。[顺便说一句,有没有迁移工