- 添加 docker-compose.local.yml(MySQL/Redis/Qdrant 本地基础设施) - 添加 mysql.conf.d 本地 MySQL 低资源配置 - RAG Worker Python 3.9 兼容(from __future__ import annotations) - 同步最新业务代码变更
43 lines
1.4 KiB
Bash
43 lines
1.4 KiB
Bash
#!/bin/bash
|
|
# Integration test runner
|
|
# Runs only integration suites under test/:
|
|
# - *.integration-spec.ts
|
|
# - *.worker-int-spec.ts
|
|
# Requires real MySQL, Redis and BullMQ worker dependencies.
|
|
set -e
|
|
|
|
echo "=== Integration tests ==="
|
|
|
|
DB_URL="${DATABASE_URL:-mysql://zhixi_user:test@127.0.0.1:3306/zhixi_test}"
|
|
REDIS_H="${REDIS_HOST:-127.0.0.1}"
|
|
REDIS_P="${REDIS_PORT:-6379}"
|
|
REDIS_PW="${REDIS_PASSWORD:-}"
|
|
|
|
echo "[1/4] Checking MySQL..."
|
|
if command -v mysqladmin >/dev/null 2>&1; then
|
|
mysqladmin ping --host="${MYSQL_HOST:-127.0.0.1}" --port="${MYSQL_PORT:-3306}" --user="${MYSQL_USER:-root}" --password="${MYSQL_PASSWORD:-${MYSQL_ROOT_PASSWORD:-root}}" --silent >/dev/null
|
|
else
|
|
docker exec mysql mysqladmin ping -u root -p"${MYSQL_ROOT_PASSWORD:-root}" --silent >/dev/null 2>&1 || {
|
|
echo "MySQL not reachable; ensure MySQL is running"
|
|
exit 1
|
|
}
|
|
fi
|
|
|
|
echo "[2/4] Checking Redis..."
|
|
if command -v redis-cli >/dev/null 2>&1; then
|
|
if [ -n "$REDIS_PW" ]; then
|
|
redis-cli -h "$REDIS_H" -p "$REDIS_P" -a "$REDIS_PW" ping | grep -q PONG
|
|
else
|
|
redis-cli -h "$REDIS_H" -p "$REDIS_P" ping | grep -q PONG
|
|
fi
|
|
else
|
|
echo "redis-cli not found; skipping explicit Redis ping, but integration tests still require Redis"
|
|
fi
|
|
|
|
echo "[3/4] Running Prisma migration..."
|
|
npx prisma migrate deploy
|
|
|
|
echo "[4/4] Running integration suites..."
|
|
npm run build --if-present
|
|
npx jest --config test/jest-integration.json --runInBand --verbose
|