Junit测试不起作用

时间:2016-01-05 18:25:11

标签: junit4 hamcrest

使用Junit调试我的应用程序时,我遇到了异常

IDE Used-Eclipse Mar

申请详情 -

JDK-1.7,Spring4和Junit4以及hamcrest-all-1.3.jar

基本代码 -

import org.junit.Assert;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;

import com.app.api.facade.LoginServiceFacade;

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration("classpath:/test-spring.xml")
public class LoginApi4JunitTest {
    @Autowired
    private LoginServiceFacade loginServiceFacade;

    @Test
    public void testIsUserExist()throws Exception{
        Boolean isUserExist=loginServiceFacade.isUserExist("xyz");
        Assert.assertEquals(Boolean.TRUE, isUserExist);
    }

}

异常 -

java.lang.NoClassDefFoundError: org/junit/runner/manipulation/Filter
     at java.lang.Class.forName0(Native Method)
     at java.lang.Class.forName(Class.java:191)
      at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.loadTestLoaderClass(RemoteTestRunner.java:320)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.createRawTestLoader(RemoteTestRunner.java:310)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.createLoader(RemoteTestRunner.java:305)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.defaultInit(RemoteTestRunner.java:283)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.init(RemoteTestRunner.java:207)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:191)
Caused by: java.lang.ClassNotFoundException: org.junit.runner.manipulation.Filter
    at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
    ... 8 more

我已经在myBuild路径中添加了Junit4和hamcrest-all-1.3.jar。

3 个答案:

答案 0 :(得分:2)

尝试删除测试的Eclipse启动程序,然后再次运行。

转到运行/运行配置/ JUnit,选择启动器并单击"删除"。然后再次运行测试。

答案 1 :(得分:0)

当有一个破碎/丢失的maven容器时已经看到了这一点。 编辑.classpath并删除条目:

classpathentry kind =“con”path =“org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER”

答案 2 :(得分:0)

尝试运行弹簧启动测试时遇到此错误。

原来,测试类错误地放在src/main/java中,而不是src/test/java中。