rwadurian/backend/services/presence-service/docker-compose.test.yml

55 lines
1.3 KiB
YAML

services:
# PostgreSQL 测试数据库
postgres-test:
image: postgres:15-alpine
container_name: presence-postgres-test
environment:
POSTGRES_USER: test
POSTGRES_PASSWORD: test
POSTGRES_DB: presence_test
ports:
- "5434:5432"
volumes:
- postgres-test-data:/var/lib/postgresql/data
healthcheck:
test: ["CMD-SHELL", "pg_isready -U test -d presence_test"]
interval: 5s
timeout: 5s
retries: 5
# Redis 测试实例
redis-test:
image: redis:7-alpine
container_name: presence-redis-test
ports:
- "6381:6379"
healthcheck:
test: ["CMD", "redis-cli", "ping"]
interval: 5s
timeout: 5s
retries: 5
# 测试运行容器
test:
build:
context: .
dockerfile: Dockerfile.test
container_name: presence-test-runner
depends_on:
postgres-test:
condition: service_healthy
redis-test:
condition: service_healthy
environment:
NODE_ENV: test
DATABASE_URL: postgresql://test:test@postgres-test:5432/presence_test?schema=public
REDIS_HOST: redis-test
REDIS_PORT: 6379
RUN_MIGRATIONS: "true"
volumes:
- ./coverage:/app/coverage
command: ["npm", "test", "--", "--coverage"]
volumes:
postgres-test-data: