java - Eclipse JUnit - 在 Eclipse 窗口中看到 "initializationError"的可能原因

标签 java eclipse junit

我知道这个问题很笼统,但我没有找到任何提示说明为什么会出现此错误。在 Eclipse 窗口中看到 initializationError 的可能原因是什么?我没有得到任何有用的信息,只是一个漫长而无用的故障跟踪(此处不包括)。

我正在使用 JUnit 4.11

我编写了以下代码 - 只是为了看看它是否有效:

package test;

import static org.junit.Assert.*;

import org.junit.AfterClass;
import org.junit.BeforeClass;
import org.junit.Test;

public class SimpleTest {

@BeforeClass
public static void setUpBeforeClass() throws Exception {
}

@AfterClass
public static void tearDownAfterClass() throws Exception {
}

@Test
public void test() {
    assertEquals(15, 15);
}

}

编辑:抱歉,在 Eclipse 窗口中它实际上被称为“故障跟踪”:

java.lang.NoClassDefFoundError: org/hamcrest/SelfDescribing     at
java.lang.ClassLoader.defineClass1(Native Method)   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$100(Unknown Source)  at
java.net.URLClassLoader$1.run(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:10)
    at
org.junit.runners.model.RunnerBuilder.safeRunnerForClass(RunnerBuilder.java:59)
    at 
org.junit.internal.builders.AllDefaultPossibilitiesBuilder.runnerForClass(AllDefaultPossibilitiesBuilder.java:26)
    at
org.junit.runners.model.RunnerBuilder.safeRunnerForClass(RunnerBuilder.java:59)
    at
org.junit.internal.requests.ClassRequest.getRunner(ClassRequest.java:26)
    at
org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.<init>(JUnit4TestReference.java:33)
    at
org.eclipse.jdt.internal.junit4.runner.JUnit4TestClassReference.<init>(JUnit4TestClassReference.java:25)
    at
org.eclipse.jdt.internal.junit4.runner.JUnit4TestLoader.createTest(JUnit4TestLoader.java:48)
    at
org.eclipse.jdt.internal.junit4.runner.JUnit4TestLoader.loadTests(JUnit4TestLoader.java:38)
    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.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) 您使用的是 JUnit 4.11,它不包括 hamcrest。将 hamcrest 1.3 库添加到您的类路径。

2) 您的类路径中有 hamcrest 1.3,但您的类路径中有另一个版本的 junit 或 hamcrest。

作为背景,junit pre 4.11 包含 hamcrest 1.1 的精简版。 4.11 移除了这些类。

关于java - Eclipse JUnit - 在 Eclipse 窗口中看到 "initializationError"的可能原因,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15190699/

相关文章:

java - 为什么 Apache POI 能够编写超过 255 个字符的超链接,而 XLSXWriter 却不能?

java - String HashSet 生成的输出与 String Hash 函数不匹配

java - Eclipse 上的哪个选项可以定义 "{"和 "}"将在同一行并自动完成?

java - 我正在尝试用 Java 将与投注相关的组件添加到我的游戏中,但程序在要求投注金额后停止工作

java - Spring boot 测试 - 模拟配置

java - 无法运行android测试套件: Exception in thread "main" java. lang.ClassNotFoundException

java - 如何在 Java 中调整窗口大小而不影响尺寸?

java - 在 Eclipse 上调试 CGLIB FastClass 时出错

Java 包围盒程序

junit - 出现错误 "cucumber.runtime.CucumberException: Couldn' t 加载插件类 : com. cucumber.listener.ExtentCucumberFormatter。”