Spring 启动测试配置不能很好地覆盖正常配置
Spring boot test configuration not override normal configuration well
我有一个 spring 启动应用程序,其配置如下:
src/main/resources/application.yml:
eureka:
client:
serviceUrl:
defaultZone: http://10.254.102.12:1111/eureka/
在我的单元测试用例中,我想设置 eureka 实例名称并更改日志记录级别。
src/test/resources/application.yml:
eureka:
instance:
appname: item-client-test
logging:
level: debug
但是当我添加这些附加设置时,那些以前的设置似乎不再起作用了。 eureka serviceUrl 回退到默认 loclahost:8761,所以我的测试失败了。当我将自定义 eureka serviceUrl 添加到 src/test/resources/application.yml
时,我的测试进行得很顺利。
所以我很困惑这是 spring 引导的错误还是我没有使用正确的配置方式?
您可以尝试使用两个配置文件,例如:
src/main/resources/application.yml
eureka:
client:
serviceUrl:
defaultZone: http://10.254.102.12:1111/eureka/
和
src/main/resources/application-test.yml
eureka:
instance:
appname: item-client-test
client:
serviceUrl:
defaultZone: http://test-server/eureka/
logging:
level: debug
和运行你的测试SPRING_PROFILES_ACTIVE=test mvn test
Spring 引导将查找 application-#{environment}
配置文件(可以这么说)并使用它,继承自默认 (application.yml
) 配置文件
我有一个 spring 启动应用程序,其配置如下:
src/main/resources/application.yml:
eureka:
client:
serviceUrl:
defaultZone: http://10.254.102.12:1111/eureka/
在我的单元测试用例中,我想设置 eureka 实例名称并更改日志记录级别。 src/test/resources/application.yml:
eureka:
instance:
appname: item-client-test
logging:
level: debug
但是当我添加这些附加设置时,那些以前的设置似乎不再起作用了。 eureka serviceUrl 回退到默认 loclahost:8761,所以我的测试失败了。当我将自定义 eureka serviceUrl 添加到 src/test/resources/application.yml
时,我的测试进行得很顺利。
所以我很困惑这是 spring 引导的错误还是我没有使用正确的配置方式?
您可以尝试使用两个配置文件,例如:
src/main/resources/application.yml
eureka:
client:
serviceUrl:
defaultZone: http://10.254.102.12:1111/eureka/
和
src/main/resources/application-test.yml
eureka:
instance:
appname: item-client-test
client:
serviceUrl:
defaultZone: http://test-server/eureka/
logging:
level: debug
和运行你的测试SPRING_PROFILES_ACTIVE=test mvn test
Spring 引导将查找 application-#{environment}
配置文件(可以这么说)并使用它,继承自默认 (application.yml
) 配置文件