我有以下spring Boot 项目,以maven模块组织:
RootModule
--ChildModule1
----ChildModule1_1/src/main/resources/my-config.yml
--ChildModule2
----ChildModule2_1
------src/main/java/mypackage/MyClass.java
------src/test/java/mypackage/MyClassTest.java
MyClass可以使用my-config.yml中的属性:
@Configuration
@ConfigurationProperties
public class MyClass {...}
MyClassTest无法使用这些属性,即使使用下面的注解:
@EnableConfigurationProperties
@TestPropertySource(properties = {"spring.config.location=classpath:my-config.yml"})
@ExtendWith{SpringExtension.class}
public class MyClassTest {...}
当我尝试在MyClassTest类中运行测试时,它抛出一个错误,因为它在类路径中找不到my-config.yml。如果我将my-config.yml复制到下面的文件夹中,它就可以工作了:ChildModule2_1 src/test/resources/my-config.yml
我不想把my-config.yml放在src/test/resources中,因为这意味着项目中有两个配置相同的文件,这不是一个好的设计决策。
为什么我的MyClass在类路径中找到了my-config.yml,而不是MyClassTest?
1条答案
按热度按时间hgc7kmma1#
我最终将MyClassTest复制到ChildModule1中,这个解决方案解决了我的问题。