SpringCloud 2020.0.2 업그레이드에서 테스트 오류가 발생함
SpringCloud BOM에서 프로젝트를 업그레이드하려고 합니다.2020.0.1
로.2020.0.2
BOM을 변경하고 다시 빌드하면 Junit 테스트에서 새 매개 변수가 발생한다는 오류가 발생합니다.spring.config.import
구성 서버에 대해 설정되지 않았습니다.
이 프로젝트는 ConfigServer가 아니므로 ConfigServer(주석이 있는 config client)를 사용하지 마십시오.
보고된 테스트 오류입니다.contextLoads()
java.lang.IllegalStateException: Failed to load ApplicationContext
at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:132)
at org.springframework.test.context.support.DefaultTestContext.getApplicationContext(DefaultTestContext.java:124)
at org.springframework.test.context.support.DependencyInjectionTestExecutionListener.injectDependencies(DependencyInjectionTestExecutionListener.java:118)
.. Many more
Caused by: org.springframework.cloud.config.client.ConfigServerConfigDataMissingEnvironmentPostProcessor$ImportException: No spring.config.import set
at org.springframework.cloud.config.client.ConfigServerConfigDataMissingEnvironmentPostProcessor.postProcessEnvironment(ConfigServerConfigDataMissingEnvironmentPostProcessor.java:60)
at org.springframework.boot.env.EnvironmentPostProcessorApplicationListener.onApplicationEnvironmentPreparedEvent(EnvironmentPostProcessorApplicationListener.java:100)
at org.springframework.boot.env.EnvironmentPostProcessorApplicationListener.onApplicationEvent(EnvironmentPostProcessorApplicationListener.java:86)
... Many more
이것은 나의 체격입니다. gradle.
plugins {
id 'org.springframework.boot' version '2.4.2'
id 'io.spring.dependency-management' version '1.0.11.RELEASE'
id 'java'
}
group = 'com.example.microservices.composite.product'
version = '1.0.0-SNAPSHOT'
sourceCompatibility = '1.8'
repositories {
mavenCentral()
maven {
url 'https://repo.spring.io/milestone'
}
}
ext {
// resilience4jVersion = "1.7.0"
resilience4jVersion = "1.6.1"
}
dependencies {
// Local projects dependencies
implementation project(':api')
implementation project(':util')
// Implementations dependencies
// Standard (actuator - for monitoring and Health)
implementation 'org.springframework.boot:spring-boot-starter-actuator'
// WebFlux (asynchronous Web)
implementation 'org.springframework.boot:spring-boot-starter-webflux'
// SpringFox dependencies
implementation "io.springfox:springfox-boot-starter:3+"
implementation('io.springfox:springfox-spring-webflux:3+')
// Implementation: Spring cloud
implementation('org.springframework.cloud:spring-cloud-starter-config')
implementation('org.springframework.cloud:spring-cloud-starter-stream-rabbit')
implementation('org.springframework.cloud:spring-cloud-starter-stream-kafka')
// Security
implementation('org.springframework.boot:spring-boot-starter-security')
implementation('org.springframework.security:spring-security-oauth2-resource-server')
implementation('org.springframework.security:spring-security-oauth2-jose')
// CircuitBreaker with Resilience4J
implementation("io.github.resilience4j:resilience4j-spring-boot2:${resilience4jVersion}")
implementation("io.github.resilience4j:resilience4j-reactor:${resilience4jVersion}")
// Implementation: Tracing
implementation('org.springframework.cloud:spring-cloud-starter-sleuth')
// Implementation: Performance metrics
implementation("io.micrometer:micrometer-registry-prometheus")
// TEST dependencies
testImplementation('org.springframework.boot:spring-boot-starter-test') {
exclude group: 'org.junit.vintage', module: 'junit-vintage-engine'
}
testImplementation 'io.projectreactor:reactor-test'
testImplementation('org.springframework.cloud:spring-cloud-stream-test-support')
}
dependencyManagement {
imports {
// mavenBom 'org.springframework.cloud:spring-cloud-dependencies:2020.0.1'
mavenBom "org.springframework.cloud:spring-cloud-dependencies:2020.0.2"
}
}
test {
useJUnitPlatform()
}
그리고 테스트 클래스의 mycontextLoads() 메서드는 사소한 것입니다.
// Test: Application
@AutoConfigureWebTestClient
@SpringBootTest(
webEnvironment = WebEnvironment.RANDOM_PORT,
classes = {
ProductCompositeServiceApplication.class,
TestSecurityConfig.class },
properties = {
"spring.main.allow-bean-definition-overriding=true" })
@Test
public void contextLoads() {
}
}
참고: 'spring.config.import' 속성을 클래스에서 변경 없이 비워두거나 없음으로 정의했습니다.
@SpringBootTest(
webEnvironment = WebEnvironment.RANDOM_PORT,
classes = {
ProductCompositeServiceApplication.class,
TestSecurityConfig.class },
properties = {
"spring.main.allow-bean-definition-overriding=true",
"spring.config.import=" })
저는 같은 문제에 직면했고 다음과 같이 config lib가 있는 부트스트랩 lib를 추가하여 해결했습니다.
implementation 'org.springframework.cloud:spring-cloud-starter-config'
implementation 'org.springframework.cloud:spring-cloud-starter-bootstrap'
SpringCloud 2020.0.2로 업그레이드한 후 동일한 문제가 발생했습니다.
추가 중spring.cloud.config.enabled=false
테스트에서 문제를 해결했습니다.
예:
@SpringBootTest(
webEnvironment = RANDOM_PORT,
properties = {"spring.cloud.config.enabled=false"}
)
저는 이것을 고쳤습니다.종속성 추가
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-bootstrap</artifactId>
</dependency>
다음 행을 추가하여 가져오기 검사를 사용하지 않도록 설정할 수 있습니다.application.yml
에 철하다.test/resources
폴더:
spring:
cloud:
config:
import-check:
enabled: false
임시 해결책
spring.cloud.config.import-check.enabled=false
이 방법은 나에게 효과가 있습니다.
<dependency>
<groupId>org.spring framework.cloud</groupId>
<artifactId>spring-cloud-starter-bootstrap</artifactId>
</dependency>
application.yml 또는 application.xml(구성 파일이 제자리에 있고 모든 구성을 가져올 수 있음)을 확인하십시오.
언급URL : https://stackoverflow.com/questions/66813147/springcloud-2020-0-2-upgrade-generates-testing-error
'source' 카테고리의 다른 글
데이터 테이블의 셀 값 액세스 (0) | 2023.06.25 |
---|---|
CSS 폭발 관리 (0) | 2023.06.25 |
Firebase 클라우드 메시징은 무료입니까? (0) | 2023.06.25 |
각진 재료 날짜에 대한 기본값 설정 각진 5가 있는 피커 (0) | 2023.06.25 |
Git가 자동으로 공백과 탭 사이를 전환할 수 있습니까? (0) | 2023.06.20 |