Java JUNIT 初始化错误

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/33585057/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-08-11 14:47:28  来源:igfitidea点击:

JUNIT Initialization Error

javajunit

提问by Aleksandra Bienioszek

this is my code of file AllTests:

这是我的文件 AllTests 代码:

import org.junit.runner.RunWith;
import org.junit.runners.Suite;
@RunWith(Suite.class)
@Suite.SuiteClasses({
    ElementTests.class
})
public class AllTest {}

ElementTests.java

元素测试.java

import org.junit.Test;
import pl.polsl.lab1.Model.*;
import static org.junit.Assert.*;
import org.junit.Test;

public class ElementTests {

    @Test
    public void properSymbolPlayerTest()
    {
        //given
        ElementOfBoard element = new ElementOfBoard();
        ElementOfBoard element2 = new ElementOfBoard();
        //when
        element.setSymbol(1);
        element.setSymbol(2);
        //then
        assertEquals('O', element);
        assertEquals('X', element2);
    }  

}

My error

我的错误

Please, how to solve it? I am using junit 4.11. I really have no idea what initialization error could be. Can you help me please?

请问怎么解决啊 我正在使用 junit 4.11。我真的不知道初始化错误可能是什么。你能帮我吗?

My Stack trace:

我的堆栈跟踪:

org/hamcrest/SelfDescribing
java.lang.NoClassDefFoundError
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:760)
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
    at java.net.URLClassLoader.defineClass(URLClassLoader.java:467)
    at java.net.URLClassLoader.access0(URLClassLoader.java:73)
    at java.net.URLClassLoader.run(URLClassLoader.java:368)
    at java.net.URLClassLoader.run(URLClassLoader.java:362)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:361)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    at java.lang.Class.getDeclaredConstructors0(Native Method)
    at java.lang.Class.privateGetDeclaredConstructors(Class.java:2671)
    at java.lang.Class.getConstructor0(Class.java:3075)
    at java.lang.Class.getConstructor(Class.java:1825)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:422)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)

回答by Biraj B Choudhury

  • Right click your project in Package Explorer > click Properties go to Java Build Path > Libraries tab click on 'Add Library' button select JUnit click Next.
  • 在 Package Explorer 中右键单击您的项目 > 单击 Properties 转到 Java Build Path > Libraries 选项卡单击“Add Library”按钮选择 JUnit 单击 Next。

That should solve this problem.

那应该可以解决这个问题。

回答by Vaishnavi R

In my case the issue was I had accidentally commented out @Testbefore the method I was trying to test. So it was throwing the initialization error and method not available.

就我而言,问题是我在尝试测试的方法之前不小心注释掉了@Test。所以它抛出了初始化错误和方法不可用。

This can also happen if we have @Ignore on the class level.

如果我们在类级别有 @Ignore,也会发生这种情况。

回答by Parthasarathy Deva

Please check @Test annotaionis added and imported from the right import path import org.junit.Test;

请检查@Test annotaion是否从正确的导入路径添加和导入import org.junit.Test;