2011-03-31 137 views
1

从源(svn存储库)代码构建项目(包括junit测试用例)时,junit通过时没有任何错误。但是,当单独运行junit时,junit失败。我已经添加了所有必需的jar文件。 java,jdk路径和环境变量都是正确的。Junit测试用例失败:java.lang.IllegalStateException:无法加载ApplicationContext

下面是我得到的异常,请帮忙:

java.lang.NoClassDefFoundError: org/springframework/expression/PropertyAccessor 
    at org.springframework.context.support.AbstractApplicationContext.prepareBeanFactory(AbstractApplicationContext.java:483) 
    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:400) 
    at org.springframework.test.context.support.AbstractGenericContextLoader.loadContext(AbstractGenericContextLoader.java:84) 
    at org.springframework.test.context.support.AbstractGenericContextLoader.loadContext(AbstractGenericContextLoader.java:42) 
    at org.springframework.test.context.TestContext.loadApplicationContext(TestContext.java:173) 
    at org.springframework.test.context.TestContext.getApplicationContext(TestContext.java:197) 
    at org.springframework.test.context.support.DependencyInjectionTestExecutionListener.injectDependencies(DependencyInjectionTestExecutionListener.java:109) 
    at org.springframework.test.context.support.DependencyInjectionTestExecutionListener.prepareTestInstance(DependencyInjectionTestExecutionListener.java:75) 
    at org.springframework.test.context.TestContextManager.prepareTestInstance(TestContextManager.java:255) 
    at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.createTest(SpringJUnit4ClassRunner.java:111) 
    at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.invokeTestMethod(SpringJUnit4ClassRunner.java:148) 
    at org.junit.internal.runners.JUnit4ClassRunner.runMethods(JUnit4ClassRunner.java:51) 
    at org.junit.internal.runners.JUnit4ClassRunner$1.run(JUnit4ClassRunner.java:44) 
    at org.junit.internal.runners.ClassRoadie.runUnprotected(ClassRoadie.java:27) 
    at org.junit.internal.runners.ClassRoadie.runProtected(ClassRoadie.java:37) 
    at org.junit.internal.runners.JUnit4ClassRunner.run(JUnit4ClassRunner.java:42) 
    at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run(SpringJUnit4ClassRunner.java:97) 
    at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:49) 
    at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38) 
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467) 
    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) 

回答

1

你得到一个java.lang.NoClassDefFoundError因为org.springframework.beans.jar(其中包含org.springframework.expression.PropertyAccessor )在运行测试时从您的类路径中丢失。

您必须以与运行所有测试时不同的方式运行单个测试。

+0

谢谢你的回复。我添加了这个jar“spring-expression-3.0.5.RELEASE”。它具有“org.springframework.expression.PropertyAccessor”,但是当我运行测试用例时,我正在获取下面的ERROR [main](TestContextManager.java:258) - 捕获的异常,同时允许TestExecutionListener [org.springframework.test.context。 [email protected]],java.lang.IllegalStateException:无法加载ApplicationContext, – 2011-04-01 06:39:42

+0

引起:org.springframework.beans.factory.BeanCreationException:创建名为'org.apache.cxf.wsdl.WSDLManager'的Bean时定义的错误类路径资源[META-INF/cxf/cxf.xml]:bean的实例化失败;嵌套的异常是org.springframework.beans.BeanInstantiationException:无法实例化bean类[org.apache.cxf.wsdl11.WSDLManagerImpl]:构造函数抛出异常;嵌套异常是java.lang.RuntimeException:javax.xml.bind.JAXBException:无法实例化provider com.sun.xml.bind.v2.ContextFactory: – 2011-04-01 06:40:18

+0

javax.xml.bind.JAXBException:Provider com.sun.xml。未找到bind.v2.ContextFactory .....................执行的方法是:在完成构建过程中,使用'build.xml'文件自动执行测试案件通过。但是当我右键点击单个或一组测试用例并且以“运行 - > junit”时,它失败。请让我知道如果我做错了什么。 – 2011-04-01 06:43:33

相关问题