测试指南
大约 4 分钟
测试指南
🚀 快速测试
# 构建脚本
make build-scripts
# 构建Docker镜像和脚本
make build
# 运行所有安装脚本的所有测试
make install-test-all
# 在中国网络环境下运行所有安装脚本的所有测试
make install-test-all NETWORK=in-china
# 运行所有数据库同步脚本的所有测试
make syncdb-test-all
# 在中国网络环境下运行所有数据库同步脚本的所有测试
make syncdb-test-all NETWORK=in-china
🎯 精确测试
安装脚本测试
在所有环境中测试特定脚本
# 在所有环境中测试特定的安装脚本
make install-test-all-env SCRIPT=git
make install-test-all-env SCRIPT=docker
make install-test-all-env SCRIPT=node
# 在中国网络环境下测试
make install-test-all-env SCRIPT=git NETWORK=in-china
在特定环境中测试所有脚本
# 在指定环境中运行所有安装脚本测试
make install-test-all-script ENV=debian11-9
make install-test-all-script ENV=debian12-2
make install-test-all-script ENV=fedora41
make install-test-all-script ENV=redhat8-10
make install-test-all-script ENV=redhat9-6
make install-test-all-script ENV=ubuntu20-04
make install-test-all-script ENV=ubuntu22-04
make install-test-all-script ENV=ubuntu24-04
# 使用中国网络
make install-test-all-script ENV=ubuntu22-04 NETWORK=in-china
在特定环境中测试特定脚本
# 在特定环境中测试特定安装脚本
make install-test-single ENV=ubuntu22-04 SCRIPT=git
make install-test-single ENV=debian12-2 SCRIPT=docker NETWORK=in-china
运行特定测试文件
# 在特定环境中运行特定测试文件
make install-test-file ENV=debian11-9 FILE=tests/install-git/01-ok.sh
make install-test-file ENV=ubuntu22-04 FILE=tests/install-docker/02-install.sh NETWORK=in-china
数据库同步脚本测试
在所有环境中测试特定同步脚本
# 在所有环境中测试特定的数据库同步脚本
make syncdb-test-all-env SCRIPT=postgresql
make syncdb-test-all-env SCRIPT=mysql
make syncdb-test-all-env SCRIPT=mongo
# 在中国网络环境下测试
make syncdb-test-all-env SCRIPT=postgresql NETWORK=in-china
在特定环境中测试所有同步脚本
# 在指定环境中运行所有数据库同步脚本测试
make syncdb-test-all-script ENV=debian11-9
make syncdb-test-all-script ENV=ubuntu22-04
# 使用中国网络
make syncdb-test-all-script ENV=ubuntu22-04 NETWORK=in-china
在特定环境中测试特定同步脚本
# 在特定环境中测试特定数据库同步脚本
make syncdb-test-single ENV=ubuntu22-04 SCRIPT=postgresql
make syncdb-test-single ENV=debian12-2 SCRIPT=mysql NETWORK=in-china
make syncdb-test-single ENV=ubuntu24-04 SCRIPT=mongo NETWORK=in-china
运行特定同步测试文件
# 在特定环境中运行特定同步测试文件
make syncdb-test-file ENV=debian11-9 FILE=tests/syncdb-postgresql/01-ok.sh
make syncdb-test-file ENV=ubuntu22-04 FILE=tests/syncdb-mysql/02-install.sh NETWORK=in-china
🛠️ 其他命令
# 交互式测试环境
make interactive
# 在容器中启动 shell
make shell
# 清理 Docker 镜像和容器
make clean
# 查看 Docker 日志
make logs
# 显示测试结果
make results
🌐 测试参数
所有测试命令支持以下参数:
NETWORK=in-china
- 使用中国网络环境配置,适用于中国内地用户DEBUG=true
- 启用调试模式,显示详细输出
🖥️ 支持的测试环境
测试支持以下环境:
- Ubuntu: 20.04, 22.04, 24.04 (AMD64)
- Debian: 11.9, 12.2 (AMD64)
- Fedora: 41 (AMD64)
- Red Hat Enterprise Linux: 8.10, 9.6 (AMD64)
🧪 测试架构
测试框架使用 Docker 容器在隔离的环境中运行测试,确保测试结果的一致性和可重复性。测试流程包括:
- 构建脚本和 Docker 镜像
- 在指定环境中运行测试
- 收集测试结果和日志
- 生成测试报告
每个脚本都有两种基本的测试类型:
- 基本验证测试 (01-ok.sh) - 检查脚本语法、帮助信息和操作系统兼容性
- 安装测试 (02-install.sh) - 测试实际安装功能
📋 开发新测试
要为新脚本添加测试,请遵循以下步骤:
- 在
tests/
目录下为脚本创建一个子目录(例如tests/install-TOOL
或tests/syncdb-DATABASE
) - 添加至少两个测试文件:
01-ok.sh
和02-install.sh
- 使用测试工具库中的断言函数来验证脚本行为
- 运行测试以确保它们在所有支持的环境中都能正常工作