无法从 junit 加载属性 spring
Failed to load properties from junit spring
我有一个项目,当通过 java -jar 命令 运行 时它工作得很好,但是如果我通过 junit 运行 它无法加载 属性 使用 spring 加载的文件 context.Below 是目录结构
/src
/main
/java
/resources
/config
/export
export.properties
context.xml
startJob.bat
test
java
execution
Test1
context.xml 包含以下内容:
<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="locations">
<list>
<value>file:config/export/export.properties</value>
</list>
</property>
我的测试class如下:
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations={"classpath:context.xml"})
public class Test1 {
@Autowired
Export export;
@org.junit.Test
public void test2() {
export.report();
当我运行上面的junit测试用例时,
我得到以下错误:
Caused by: java.io.FileNotFoundException: config\export\export.properties (The system cannot find the path specified).
我什至尝试处理从 src/main/resources 到 src/test/resources 的所有资源,但它仍然失败并出现相同的错误。
我相信这是每个人都会使用的东西,而且一定非常简单......
编辑 1
我创建了一个单独的 test-context.xml 并将其放在源代码中并修改它以使用 classpath:
加载文件
<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="locations">
<list>
<value>classpath:config/export/export.properties</value>
</list>
</property>.
此后 spring 能够加载属性,但在进一步处理时,我在记录器中有以下代码:DOMConfigurator.configure("config/export/export_log.xml")
失败并显示 "java.io.FileNotFoundException: H:\workspaces\export\job\config/export/export_log.xml".
它如何选择这条路径?
我能够通过如下配置日志文件来解决问题:
DOMConfigurator.configure(JobLogger.class.getClassLoader().getResource("config/export/export_log.xml"))
我有一个项目,当通过 java -jar 命令 运行 时它工作得很好,但是如果我通过 junit 运行 它无法加载 属性 使用 spring 加载的文件 context.Below 是目录结构
/src
/main
/java
/resources
/config
/export
export.properties
context.xml
startJob.bat
test
java
execution
Test1
context.xml 包含以下内容:
<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="locations">
<list>
<value>file:config/export/export.properties</value>
</list>
</property>
我的测试class如下:
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations={"classpath:context.xml"})
public class Test1 {
@Autowired
Export export;
@org.junit.Test
public void test2() {
export.report();
当我运行上面的junit测试用例时, 我得到以下错误:
Caused by: java.io.FileNotFoundException: config\export\export.properties (The system cannot find the path specified).
我什至尝试处理从 src/main/resources 到 src/test/resources 的所有资源,但它仍然失败并出现相同的错误。 我相信这是每个人都会使用的东西,而且一定非常简单......
编辑 1 我创建了一个单独的 test-context.xml 并将其放在源代码中并修改它以使用 classpath:
加载文件<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="locations">
<list>
<value>classpath:config/export/export.properties</value>
</list>
</property>.
此后 spring 能够加载属性,但在进一步处理时,我在记录器中有以下代码:DOMConfigurator.configure("config/export/export_log.xml")
失败并显示 "java.io.FileNotFoundException: H:\workspaces\export\job\config/export/export_log.xml".
它如何选择这条路径?
我能够通过如下配置日志文件来解决问题:
DOMConfigurator.configure(JobLogger.class.getClassLoader().getResource("config/export/export_log.xml"))