Java 尝试运行单元测试时出现Junit错误

Java 尝试运行单元测试时出现Junit错误,java,junit,classnotfoundexception,Java,Junit,Classnotfoundexception,我得到这个错误: Class not found com.apache.camel.example.tests.ReportIncidentRoutesTest java.lang.ClassNotFoundException: com.apache.camel.example.tests.ReportIncidentRoutesTest at java.net.URLClassLoader$1.run(URLClassLoader.java:366) at java.net.URLCla

我得到这个错误:

   Class not found com.apache.camel.example.tests.ReportIncidentRoutesTest
java.lang.ClassNotFoundException: com.apache.camel.example.tests.ReportIncidentRoutesTest
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:423)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:356)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.loadClass(RemoteTestRunner.java:693)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.loadClasses(RemoteTestRunner.java:429)
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)
这是我收到的新错误的更新堆栈跟踪。在运行配置中,我确实让它指向这个类,所以我不确定为什么我仍然得到这个错误

编辑:----------------------------------------------------------------------------------- 我的测试课程副本:

package com.apache.camel.example.tests;

import org.apache.camel.CamelContext;
import org.apache.camel.example.reportincident.InputReportIncident;
import org.apache.camel.example.reportincident.OutputReportIncident;
import org.apache.camel.example.reportincident.ReportIncidentEndpoint;
import org.apache.camel.example.reportincident.ReportIncidentRoutes;
import org.apache.camel.impl.DefaultCamelContext;
import org.apache.cxf.jaxws.JaxWsProxyFactoryBean;
import org.jvnet.mock_javamail.Mailbox;

import junit.framework.Test;
import junit.framework.TestCase;
/** *我们路线的单元测试 */


}

编译时junit 3似乎在类路径中(假设您在使用junit api时没有遇到编译错误),但在运行时却没有,因此存在一些类路径不匹配的问题


您似乎是通过eclipse测试运行程序运行测试的,它是否配置为与编写测试所用的junit版本相同?

如何运行单元测试?如何构建发布jar?我正在做一个eclipse运行-->JUnit测试,我的发布jar将打包在部署到tomcat服务器的WAR文件中。尝试在我们的运行配置Eclipse JUnit runner中为您的类检查默认运行程序。另外,请确保有效的JUnit jar位于特定运行配置的类路径中。啊,是的,它似乎不在运行配置的类路径中,我现在收到一个不同的错误,表示测试“未找到类”,尽管我在运行配置中明确说明了这一点,我之前遇到了一个不同的错误,我查看了运行配置,发现它被设置为JUNIT 4,所以我将其更改为3,但随后这个错误开始出现。我猜eclipse配置有一个到JUNIT 3.jar文件的错误路径,但我不知道如何查找和修复该配置,抱歉。
   public class ReportIncidentRoutesTest extends TestCase {

private CamelContext camel;

// should be the same address as we have in our route
private static String ADDRESS = "http://localhost:8080/part-five/webservices/incident";

protected void startCamel() throws Exception {
    camel = new DefaultCamelContext();
    camel.addRoutes(new ReportIncidentRoutes());
    camel.start();
}

protected static ReportIncidentEndpoint createCXFClient() {
    // we use CXF to create a client for us as its easier than JAXWS and works
    JaxWsProxyFactoryBean factory = new JaxWsProxyFactoryBean();
    factory.setServiceClass(ReportIncidentEndpoint.class);
    factory.setAddress(ADDRESS);
    return (ReportIncidentEndpoint) factory.create();
}

public void testRendportIncident() throws Exception {
    // start camel
    startCamel();

    // assert mailbox is empty before starting
    Mailbox inbox = Mailbox.get("blah@blah.com");
    assertEquals("Should not have mails", 0, inbox.size());

    // create input parameter
    InputReportIncident input = new InputReportIncident();
    input.setIncidentId("123");
    input.setIncidentDate("2008-08-18");
    input.setGivenName("Patrick");
    input.setFamilyName("joe");
    input.setSummary("Blah");
    input.setDetails("Blah blah");
    input.setEmail("blah@blah.com");
    input.setPhone("845 2962 7576");

    // create the webservice client and send the request
    ReportIncidentEndpoint client = createCXFClient();
    OutputReportIncident out = client.reportIncident(input);

    // assert we got a OK back
    assertEquals("0", out.getCode());

    // let some time pass to allow Camel to pickup the file and send it as an email
    Thread.sleep(3000);

    // assert mail box
    assertEquals("Should have got 1 mail", 1, inbox.size());

    // stop camel
    camel.stop();
}