sid*_*ate 7 java spring unit-testing spring-boot spring-cloud-aws
我已经spring-cloud-starter-aws-parameter-store-config按照spring 文档中的说明添加了依赖项。现在,对于单元测试,我想禁用参数存储配置。但是做不到。
我尝试在 test/application.properties 中设置以下属性
aws.paramstore.enabled=false
Run Code Online (Sandbox Code Playgroud)
还试图排除AwsParamStoreBootstrapConfiguration.class来自AutoConfiguration但仍然没有工作。
例外
引起:org.springframework.beans.BeanInstantiationException:无法实例化[com.amazonaws.services.simplesystemsmanagement.AWSSimpleSystemsManagement]:工厂方法'ssmClient'抛出异常;嵌套异常是 com.amazonaws.SdkClientException: Unable to find a region via the region provider chain。必须在构建器或设置环境中提供显式区域以提供区域。在 org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:185) ~[spring-beans-5.0.7.RELEASE.jar:5.0.7.RELEASE] 在 org.springframework.beans.factory。 support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:582) ~[spring-beans-5.0.7.RELEASE.jar:5.0.7.RELEASE] ... 83个常见框架省略导致:com.amazonaws.SdkClientException:无法通过区域提供商链找到区域。必须在构建器或设置环境中提供显式区域以提供区域。在 com.amazonaws.client.builder.AwsClientBuilder.setRegion(AwsClientBuilder.java:371) ~[aws-java-sdk-core-1.11.336.jar:na] 在 com.amazonaws.client.builder.AwsClientBuilder.configureMutableProperties( AwsClientBuilder.java:337) ~[aws-java-sdk-core-1.11.336.jar:na] 在 com.amazonaws.client.builder.AwsSyncClientBuilder.build(AwsSyncClientBuilder.java:46) ~[aws-java-sdk -core-1.11.336.jar:na] 在 com.amazonaws.services.simplesystemsmanagement.AWSSimpleSystemsManagementClientBuilder.defaultClient(AWSSimpleSystemsManagementClientBuilder.java:44) ~[aws-java-sdk-ssm-1.11.336.jar:na] 在 org .springframework.cloud.aws.autoconfigure.paramstore.AwsParamStoreBootstrapConfiguration。
sid*_*ate 15
通过将属性 ( aws.paramstore.enabled=false)添加到bootstrap.properties文件测试资源文件夹,我能够使用替代方法禁用 paramstore 。这是一个更简单的解决方案
较旧的解决方案
我能够找出解决方案。似乎是SpringBootTest试图加载ssmClient,即使测试配置类之前装入前application.properties。解决方案是通过在@SpringBootTest自身上指定属性来禁用 paramstore
@SpringBootTest(classes = MyApp.class, properties = {"aws.paramstore.enabled=false"})
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3376 次 |
| 最近记录: |