【发布时间】:2016-02-20 16:52:20
【问题描述】:
我正在使用 spring 进行集成测试。
我有 AppA。这确实有属性文件来加载 bean 属性。对于单元测试,我创建了 AppATestContext 并使用 @propertySource 添加了此属性文件。此 AppA 的单元测试工作正常。
我已将 AppA-test.jar 包含到 BigApp 中。我正在尝试为 BigApp 编写单元测试。我已将 AppATestContext 包含到 BigApp 测试上下文中。现在,当我运行 bigApp 单元测试时,我收到“无法解决占位符错误”。
为什么,AppAtestContext 应该已经加载了属性正确的 bean?我在哪里失踪。
同时,如果我将 AppA 的属性文件包含到 BigApp 的占位符配置器中,它就可以工作了。
更新
AppAtestContext.java
@PropertySource("app.properties")
class AppTestContext{
//propertyPlaceholderConfigurer bean declaration.
}
BigAppTestContext.xml
<bean class="AppAtestContext.java"/>
BigAppTest.java
@ContextHierarchy{@ContextConfiguration={BigAppTestContext.xml})
class SomeTest{
}
此测试不会将 app.properties 放入 AppA 项目中定义的 bean。
【问题讨论】:
-
在你的上下文bean中添加@Configurable,或者在你的xml中添加
-
但是没有添加您的建议,AppA 中的所有单元测试都可以正常工作。
-
您的 app.properties 在哪里?我感觉它在 .JAR 中,您的测试无法访问它。尝试在 app.properties 之前添加 classpath:/。
-
是的,它在 AppA.jar 中。我认为我的路径正确,因为 AppA 的单元测试运行良好。
标签: spring