微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用maven布局中的spring或camel属性占位符覆盖junit测试的一些属性

我想在src / test / resources文件夹中仅指定要在同名的测试属性文件中覆盖的属性.

更多细节……

在maven布局中,我有一个属性文件,其中包含要使用的部署值(例如input.uri).

src/main/resources/app.properties: 
input.uri=jms:topic:in
app.name=foo_bar

property-placeholder将此文件属性加载到context.xml文件中:

src/main/resources/meta-inf/spring/context.xml:
property-placeholder properties-ref="springProperties"/>
sspath:app.properties" />

我在src / test / resources文件夹中有一个名为app.properties的测试属性文件,并将input.uri定义覆盖到我的junit测试将使用的定义. (注意,app.name不会改变).

src/test/resources/app.properties: 
input.uri=seda:in

您将如何编写junit测试和/或测试context.xml文件,以便从src / main / resources / app.properties文件加载属性,但是在src / test / resources / app.properties文件中定义的任何属性覆盖src / main / resources / app.properties文件中的那些?如果你在src / main文件或src / test junit测试文件中加载两个不同的文件是显而易见的 – 我希望属性占位符搜索类路径并选择正确的值.

最佳答案
您必须提供不同的名称 – 如果main和test中的属性具有相同的名称,则一个或另一个中的整个属性将生效.

相反,像这样的方法我有用:

在你的src / main / resources / meta-inf / spring / context.xml中执行以下操作:

property-placeholder location="classpath:app.properties" local-override="true" properties-ref="springProperties"/>

在test-context.xml文件中:

sspath:/meta-inf/spring/context.xml">

这将覆盖您的属性,同时保持原始文件中未覆盖的值.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐