使用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。
答案 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
中。