2013-01-17 87 views
0

,当我得到这个错误:Junit的错误尝试运行单元测试

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; 
我们的路线

/** * 单元测试 */

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("[email protected]"); 
    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("[email protected]"); 
    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(); 
} 

}

+0

你如何运行单元测试?你如何构建你的发布罐? – Taky

+0

我只是在做一个eclipse运行 - > JUnit Test – parchambeau

+0

而我的发布jar会打包在一个WAR文件中部署到一个tomcat服务器 – parchambeau

回答

0

看来JUnit 3中在classpath编译时(假设你没有得到compil任何使用junit api的错误),但不是在运行时,所以会出现一些类路径不匹配的情况。

看来你运行通过eclipse测试亚军的测试,是配置为相同的junit版本作为测试写入?

+0

是的,我得到一个不同的错误之前,我看了在运行配置中发现它已被设置为JUNIT 4,因此我将其更改为3,但随后此错误开始弹出。 – parchambeau

+0

我猜想eclipse配置对junit 3 .jar文件有一个不好的路径,但我不知道如何找到并修复该配置,对不起。 –

相关问题