![](/img/trans.png)
[英]Activate profiles for spring boot test using application.properties file
[英]How to merge application.properties with application-default.properties and include in other test profiles with Spring Boot >2.4
我们希望在运行测试时将src/main/resources/application.properties
与其他默认属性合并,而这些默认属性又应包含在通过 Spring 引导应用程序中的特定配置文件激活的其他(测试)属性文件中。
直到 Spring Boot 2.4 之前,通过在src/test/resources/application-default.properties
中包含所有常见的测试属性来保持干燥,这工作得很好。 然后这些被 Spring [ 1 ] 自动与来自src/main/resources/application.properties
的那些合并。 这使我们能够拥有自己的一组默认属性,而无需测试来指定@ActiveProfiles("default")
。
然后其他(测试)配置文件可以拥有自己的 application-<profile>.properties 和spring.profiles.include=default
,然后进一步扩展默认值。
使用 Spring Boot 2.4 我正在努力应对新的“规则”:
我无法再从 application-<profile>.properties 加载 application-default.properties,因为spring.profiles.include
在非特定于配置文件的文档中不再允许 [ 2 ]。
我不想介绍src/test/resources/application.properties
因为我不想重复src/main/resources/application.properties
中的所有内容。 此外,我不想在应用程序的属性中加载任何激活任何与测试相关的配置文件。
看起来一种解决方案可能是将spring.profiles.include=default
显式添加到src/main/resources/application.properties
以强制应用程序包含具有默认属性的属性文件,这在运行实际应用程序,但在运行测试时考虑src/test/resources/application-default.properties
。
这是通往 go 的方法,还是有更聪明的解决方案来解决这个问题,并且仍然保持属性没有冗余?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.