gpt4 book ai didi

java - 如何从 jUnit 测试启动 Maven 过滤?

转载 作者:行者123 更新时间:2023-12-01 14:04:30 30 4
gpt4 key购买 nike

情况:我有一个类 MyController 可以与一些外部 WebServices 一起使用。

public class MyController {
private String integrationWebServiceURL;
}

此类 Web 服务 URL 在描述符中的配置 Controller bean 期间传递 ( applicationContext.xml )
<bean id="myController"  class="com.mypath.MyController">
<property name="integrationWebServiceURL" value="${integration.web.service.url}"/>
</bean>

该值是动态的,实际值存储在属性文件 中应用程序属性
integration.web.service.url=${pom.integration.web.service.url}

但这还不是结束 - 真正的值存储在 maven 项目文件 ( pom.xml ) 中,filtering=true。
<pom.integration.web.service.url>http://mywebservices.com</pom.integration.web.service.url>

所以,当我们使用 mvn 安装测试 pom.xml 中的值被复制到 application.properties 中的适当占位符,然后我的类的测试工作得很好。
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations={"/applicationContext.xml"})
public class MyControllerTest {

}

问题 :我需要从 IDE 启动我的测试,以便能够使用不同的设置并使用 IDE 的调试功能。但是,如果我在没有初步 Maven 构建的情况下从 IDE 简单地启动此测试 - 则我的 Web 服务地址将简单地从 application.properties 获取并等于“${pom.integration.web.service.url}”(例如,Maven 过滤过程不在测试前不工作)。如何调整 Maven、Spring 或 jUnit 以从 pom.xml 中提取我的值?

注意 :我知道我可以简单地在测试类使用的 application.properties 或 applicationContext.xml 文件中显式设置此值,但我需要从 pom.xml 中提取此值。

最佳答案

只需使用 maven 运行,如下所示:

mvn test

然后一切都应该过滤 pom 变量。
您可以拥有特定属性文件的 testResources。或 applicationContext-test.xml。

关于java - 如何从 jUnit 测试启动 Maven 过滤?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7891350/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com