【发布时间】:2016-04-11 08:02:35
【问题描述】:
我有一些从 XML 文件加载应用程序上下文的单元测试:
@BeforeClass
public static void setUp() throws Exception {
ApplicationContext context = new ClassPathXmlApplicationContext("test-application-context.xml");
}
这会引发异常:
org.springframework.beans.factory.BeanDefinitionStoreException: IOException parsing XML document from class path resource [test-application-context.xml]; nested exception is java.io.FileNotFoundException: class path resource [test-application-context.xml] cannot be opened because it does not exist
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:344)
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:304)
at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:180)
at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:216)
at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:187)
at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:251)
at org.springframework.context.support.AbstractXmlApplicationContext.loadBeanDefinitions(AbstractXmlApplicationContext.java:127)
at org.springframework.context.support.AbstractXmlApplicationContext.loadBeanDefinitions(AbstractXmlApplicationContext.java:93)
at org.springframework.context.support.AbstractRefreshableApplicationContext.refreshBeanFactory(AbstractRefreshableApplicationContext.java:129)
at org.springframework.context.support.AbstractApplicationContext.obtainFreshBeanFactory(AbstractApplicationContext.java:542)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:454)
at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:139)
at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:83)
我的单元测试类在文件夹中:
myproj/myproj-configuration-dal/src/test/java/com/mypatterns/api/data/impl/LogTest.java
资源文件在:
myproj/myproj-configuration-dal/src/test/resources/test-application-context.xml
我尝试将 xml 文件以及整个资源文件夹移动到以下位置:src 文件夹、LogTest 所在的文件夹、主文件夹(非测试源所在的位置)等等。
这到底应该在哪里? ClassPathXmlApplicationContext 在哪里找资源?
谢谢, 塞尔维亚
【问题讨论】:
-
我相信你缺少一个斜杠,
/test-application-context.xml。 -
我尝试添加一个,没有用。当你这样写:“/test-application-context.xml”时,表示这是绝对路径,所以不起作用。
标签: java xml unit-testing classpath