- 重构README结构,按新开发者学习流程组织内容 - 更新项目架构图和技术栈说明,基于实际代码结构 - 创建CONTRIBUTORS.md,记录所有贡献者信息和统计 - 添加TESTING.md测试指南,支持无依赖快速测试 - 创建docs/ARCHITECTURE.md详细架构设计文档 - 优化.env.example配置,支持测试和生产环境切换 - 添加跨平台测试脚本(test-api.ps1/test-api.sh) - 删除冗余测试文件,统一测试入口 - 更新所有链接为正确的Gitea仓库地址 - 添加MIT开源协议文件
138 lines
3.1 KiB
Markdown
138 lines
3.1 KiB
Markdown
# 测试指南
|
||
|
||
本项目支持**无数据库和无邮件服务器**的测试模式,让你可以快速验证所有功能!
|
||
|
||
## 🚀 快速开始
|
||
|
||
### 1. 环境配置
|
||
|
||
```bash
|
||
# 复制环境配置文件
|
||
cp .env.example .env
|
||
```
|
||
|
||
默认配置已经设置为测试模式,无需修改即可使用。
|
||
|
||
### 2. 启动服务
|
||
|
||
```bash
|
||
# 安装依赖
|
||
npm install
|
||
|
||
# 启动开发服务器
|
||
npm run dev
|
||
```
|
||
|
||
### 3. 运行测试
|
||
|
||
**Windows (PowerShell):**
|
||
```powershell
|
||
.\test-api.ps1
|
||
```
|
||
|
||
**Linux/macOS:**
|
||
```bash
|
||
./test-api.sh
|
||
```
|
||
|
||
**自定义参数:**
|
||
```bash
|
||
# Windows
|
||
.\test-api.ps1 -BaseUrl "http://localhost:3000" -TestEmail "custom@example.com"
|
||
|
||
# Linux/macOS
|
||
./test-api.sh "http://localhost:3000" "custom@example.com"
|
||
```
|
||
|
||
## 🧪 测试功能
|
||
|
||
测试脚本会验证以下功能:
|
||
|
||
- ✅ **邮箱验证码发送** - 生成6位数验证码
|
||
- ✅ **邮箱验证码验证** - 验证码校验和清理
|
||
- ✅ **用户注册** - 完整的用户注册流程
|
||
- ✅ **用户登录** - 用户名/邮箱/手机号登录
|
||
|
||
## 🔧 测试模式特性
|
||
|
||
- 🗄️ **Redis 文件存储** - 使用 `redis-data/redis.json` 存储验证码
|
||
- 📧 **邮件测试模式** - 邮件内容输出到控制台,无需真实SMTP
|
||
- 💾 **内存用户存储** - 无需数据库,用户数据存储在内存中
|
||
- 🔄 **自动切换** - 根据配置自动选择存储模式
|
||
|
||
## 📊 单元测试
|
||
|
||
```bash
|
||
# 运行所有单元测试
|
||
npm test
|
||
|
||
# 监听模式
|
||
npm run test:watch
|
||
|
||
# 生成覆盖率报告
|
||
npm run test:cov
|
||
```
|
||
|
||
## 🌐 生产环境配置
|
||
|
||
要切换到生产环境,编辑 `.env` 文件:
|
||
|
||
```bash
|
||
# 启用数据库(取消注释并填入真实数据)
|
||
DB_HOST=your_mysql_host
|
||
DB_PORT=3306
|
||
DB_USERNAME=your_db_username
|
||
DB_PASSWORD=your_db_password
|
||
DB_NAME=your_db_name
|
||
|
||
# 启用真实Redis(取消注释并设置)
|
||
USE_FILE_REDIS=false
|
||
REDIS_HOST=your_redis_host
|
||
REDIS_PORT=6379
|
||
REDIS_PASSWORD=your_redis_password
|
||
|
||
# 启用邮件服务(取消注释并填入真实数据)
|
||
EMAIL_HOST=smtp.gmail.com
|
||
EMAIL_PORT=587
|
||
EMAIL_USER=your_email@gmail.com
|
||
EMAIL_PASS=your_app_password
|
||
EMAIL_FROM="Whale Town Game" <noreply@whaletown.com>
|
||
|
||
# 生产环境设置
|
||
NODE_ENV=production
|
||
LOG_LEVEL=info
|
||
```
|
||
|
||
## 🔍 故障排除
|
||
|
||
### 服务启动失败
|
||
- 检查端口3000是否被占用
|
||
- 确认Node.js版本 >= 18.0.0
|
||
- 运行 `npm install` 重新安装依赖
|
||
|
||
### 测试脚本执行失败
|
||
- 确认服务器正在运行
|
||
- 检查防火墙设置
|
||
- 在Linux/macOS上确保脚本有执行权限:`chmod +x test-api.sh`
|
||
|
||
### Redis文件存储问题
|
||
- 检查 `redis-data` 目录权限
|
||
- 确认 `USE_FILE_REDIS=true` 设置正确
|
||
|
||
### 邮件测试模式问题
|
||
- 确认邮件配置为注释状态
|
||
- 检查服务器控制台日志输出
|
||
|
||
## 📝 测试数据
|
||
|
||
测试完成后,你可以查看:
|
||
|
||
- `redis-data/redis.json` - 验证码存储数据
|
||
- 服务器控制台 - 邮件内容输出
|
||
- 测试脚本输出 - API响应结果
|
||
|
||
## 🎯 下一步
|
||
|
||
- 查看 [API 文档](http://localhost:3000/api-docs) 了解更多接口
|
||
- 阅读 [开发规范](./docs/backend_development_guide.md) 开始开发
|
||
- 使用 [AI 辅助指南](./docs/AI辅助开发规范指南.md) 提高开发效率 |