.PHONY: help test-all test-sqlite test-postgres test-mysql docker-up docker-down docker-logs clippy-all
help:
@echo "DBNexus 测试命令"
@echo ""
@echo "数据库相关:"
@echo " make docker-up - 启动 PostgreSQL 和 MySQL 容器"
@echo " make docker-down - 停止数据库容器"
@echo " make docker-logs - 查看数据库日志"
@echo ""
@echo "测试相关:"
@echo " make test-sqlite - 运行 SQLite 测试"
@echo " make test-postgres - 运行 PostgreSQL 测试"
@echo " make test-mysql - 运行 MySQL 测试"
@echo " make test-all - 运行所有数据库测试"
@echo ""
@echo "代码质量:"
@echo " make clippy-sqlite - 运行 SQLite 的 clippy 检查"
@echo " make clippy-postgres - 运行 PostgreSQL 的 clippy 检查"
@echo " make clippy-mysql - 运行 MySQL 的 clippy 检查"
@echo " make clippy-all - 运行所有数据库的 clippy 检查"
docker-up:
@echo "启动数据库容器..."
docker compose up -d
@echo "等待数据库就绪..."
@sleep 15
@./scripts/test-databases.sh
docker-down:
docker compose down
docker-logs:
docker compose logs -f
test-sqlite:
@echo "运行 SQLite 测试..."
TEST_DB_TYPE=sqlite cargo test -p dbnexus --no-default-features --features "runtime-tokio-rustls,sqlite,permission,sql-parser,macros,config-yaml,config-toml,all-optional"
test-postgres:
@echo "运行 PostgreSQL 测试..."
TEST_DB_TYPE=postgres DATABASE_URL=postgres://dbnexus:dbnexus_password@localhost:15433/dbnexus_test cargo test -p dbnexus --no-default-features --features "runtime-tokio-rustls,postgres,permission,sql-parser,macros,config-yaml,config-toml,all-optional" -- --test-threads=1
test-mysql:
@echo "运行 MySQL 测试..."
TEST_DB_TYPE=mysql DATABASE_URL=mysql://dbnexus:dbnexus_password@localhost:13308/dbnexus_test cargo test -p dbnexus --no-default-features --features "runtime-tokio-rustls,mysql,permission,sql-parser,macros,config-yaml,config-toml,all-optional" -- --test-threads=1
test-all:
@echo "运行所有数据库测试..."
@make test-sqlite
@make test-postgres
@make test-mysql
clippy-sqlite:
@echo "运行 SQLite clippy 检查..."
cargo clippy -p dbnexus --no-default-features --features "runtime-tokio-rustls,sqlite,permission,sql-parser,macros,all-optional"
clippy-postgres:
@echo "运行 PostgreSQL clippy 检查..."
cargo clippy -p dbnexus --no-default-features --features "runtime-tokio-rustls,postgres,permission,sql-parser,macros,all-optional"
clippy-mysql:
@echo "运行 MySQL clippy 检查..."
cargo clippy -p dbnexus --no-default-features --features "runtime-tokio-rustls,mysql,permission,sql-parser,macros,all-optional"
clippy-all:
@echo "运行所有数据库的 clippy 检查..."
@make clippy-sqlite
@make clippy-postgres
@make clippy-mysql