Skip to content

[ CI ] 로컬에서 Testcontainers 통합 테스트가 조용히 skip 된다 #92

Description

@RosieOh

💚 어떤 기능인가요?

로컬에서 ./gradlew test 를 돌리면 Testcontainers 기반 통합 테스트 2개가 조용히 skip 된다.

  • FlywaySchemaValidationTest — 마이그레이션만으로 만든 스키마와 엔티티의 정합성 검증
  • CareCodeMariaDbIntegrationTest

두 클래스 모두 @Testcontainers(disabledWithoutDocker = true) 라 Docker 를 못 찾으면 건너뛴다.
문제는 Docker 가 켜져 있어도 건너뛴다는 것이다.

Could not find a valid Docker environment.
EnvironmentAndSystemPropertyClientProviderStrategy: failed with exception
BadRequestException (Status 400: {...})
NpipeSocketClientProviderStrategy: failed with exception
BadRequestException (Status 400: {...})

Testcontainers 1.21.3 이 번들하는 docker-java 가 Docker Engine 29.x 의 /info 에 400 을 받는다
(확인 환경: Docker Engine 29.5.3, API 1.54 / Min 1.40, Windows + Docker Desktop).
DOCKER_HOST 지정, docker.host / api.version 고정 모두 효과가 없었다.

CI(ubuntu-latest)에서는 정상 동작하고 skip 되면 빌드를 실패시키는 게이트가 있어
저장소 설정 문제는 아니다. 다만 로컬에서 스키마 정합성 검증이 사라진 채
초록불이 뜨는 것은 위험하다. 이 게이트를 만든 이유 자체가 "조용히 skip 되면 아무도 모른다" 였다.

✅ To Dos

  • Testcontainers 를 Docker Engine 29 를 지원하는 버전으로 올리고 CI 에서 검증
  • 올릴 수 없다면 로컬 실행 방법을 docs/quality/regression-safety.md 에 기록
  • 로컬 test 실행 시에도 skip 을 눈에 띄게 알릴지 검토 (CI 게이트와 동일한 확인을 개발자 머신에서도)

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions