chore: 清理旧测试基础设施并添加新测试框架

- 清理废弃的 CI/CD 工作流文件与 dogfood 输出
- 添加 vitest 测试环境配置(mocks、setup 文件)
- 添加算法、服务、页面、工具类的单元测试
- 更新 vitest 配置、依赖与文档
This commit is contained in:
2026-08-12 18:53:15 +08:00
parent 039fbe4f4c
commit 0f8b29874f
37 changed files with 3511 additions and 617 deletions
+90 -122
View File
@@ -1,164 +1,132 @@
# Everything Is Suitable - E2E测试项目
# 万事宜 (Everything Is Suitable)
中国传统文化研究工具 — 紫微斗数排盘 / 黄历查询 / 运势分析
## 项目概述
本项目是一个完整的端到端(E2E)测试框架,基于Playwright构建,为uniapp和admin模块提供全面的自动化测试解决方案
**万事宜**是一款纯客户端 UniApp 应用,所有计算和数据存储均在本地完成,无需网络连接、无需后端服务、无需注册账号。支持 H5、微信小程序、App 多端发布
## 项目结构
```
everything-is-suitable/
├── everything-is-suitable-test/ # E2E测试框架
│ ├── e2e/ # 测试代码
│ │ ├── fixtures/ # 测试夹具
│ │ ├── core/ # 核心模块
│ │ ├── helpers/ # 测试辅助工具
│ │ ── examples/ # 示例测试
├── playwright.config.ts # Playwright配置
├── everything-is-suitable-uniapp/ # UniApp 主应用
│ ├── src/
│ │ ├── algorithms/ # 核心算法(紫微斗数、黄历、运势)
│ │ ├── components/ # 通用组件
│ │ ├── locales/ # 国际化(9种语言)
│ │ ── pages/ # 页面
│ │ ├── almanac-search/ # 黄历搜索
│ │ │ ├── ziwei/ # 紫微斗数排盘
│ │ │ └── fortune/ # 运势分析
│ │ ├── services/ # 业务服务层(纯本地计算)
│ │ ├── types/ # TypeScript 类型定义
│ │ ├── utils/ # 工具函数(存储、缓存、导出等)
│ │ ├── App.vue
│ │ ├── main.ts
│ │ ├── manifest.json
│ │ └── pages.json
│ ├── e2e/ # E2E 测试(Playwright
│ ├── Jenkinsfile # Jenkins CI/CD 配置
│ ├── Dockerfile # H5 部署 Docker 配置
│ ├── nginx.conf # Nginx 配置(纯静态,无后端代理)
│ ├── package.json
│ ├── README.md # 详细使用文档
│ └── QUICKSTART.md # 快速入门指南
├── everything-is-suitable-admin/ # Admin管理后台
├── everything-is-suitable-uniapp/ # Uniapp移动端应用
├── everything-is-suitable-backend/ # 后端API服务
├── docker-compose.test.yml # 测试环境Docker配置
├── .woodpecker.yml # Woodpecker CI配置
└── WOODPECKER_CI.md # Woodpecker CI使用文档
│ ├── vite.config.ts
│ └── vitest.config.ts
├── assets/ # 落地页素材
├── docs/ # 项目文档
│ ├── plans/ # 历史规划文档
│ ├── baselines/ # 测试基线
│ ├── reports/ # 测试报告
│ └── superpowers/ # Superpowers 工作流计划
├── index.html # 落地页
├── i18n.js # 落地页国际化
└── README.md
```
## 技术栈
| 类别 | 技术 |
|------|------|
| 框架 | UniApp (Vue 3 + TypeScript) |
| 构建 | Vite |
| 测试 | Vitest (单元) + Playwright (E2E) |
| 国际化 | vue-i18n (9种语言) |
| 存储 | uni.getStorageSync/setStorageSync |
| CI/CD | Jenkins |
| 部署 | Docker + Nginx (H5) |
## 快速开始
### 前置要求
- Node.js >= 18.0.0
- Node.js >= 20.0.0
- npm >= 9.0.0
- Docker
### 安装依赖
### 安装与运行
```bash
cd everything-is-suitable-test
cd everything-is-suitable-uniapp
npm install
npm run test:install
# H5 开发模式
npm run dev:h5
# 微信小程序开发模式
npm run dev:mp-weixin
```
### 配置环境
### 构建
```bash
cp .env.example .env
# 编辑.env文件,配置测试环境URL和账号密码
# 构建 H5
npm run build:h5
# 构建微信小程序
npm run build:mp-weixin
```
### 运行测试
### 测试
```bash
# 本地运行
# 单元测试
npm run test
# Docker环境运行
docker-compose -f docker-compose.test.yml up -d
sleep 30
npm run test
docker-compose -f docker-compose.test.yml down
# 单元测试 + 覆盖率
npm run test:coverage
# E2E 测试
npm run test:e2e
```
## CI/CD集成
## 纯客户端架构说明
项目使用**Woodpecker CI**作为持续集成/持续部署工具。
应用采用纯客户端架构,核心特征:
### 配置文件
- **零网络请求**:所有算法(紫微斗数排盘、黄历计算、运势推演)均在客户端本地执行
- **零后端依赖**:无 API 调用、无数据库、无服务器
- **本地存储**:用户数据通过 `uni.getStorageSync/setStorageSync` 存储在设备本地
- **离线可用**manifest.json 中 INTERNET 权限设为 false,无需网络即可使用全部功能
- **隐私安全**:用户数据不离开设备,无需注册账号
- `.woodpecker.yml` - Woodpecker CI配置文件
- `WOODPECKER_CI.md` - 详细配置说明文档
## 功能模块
### Pipeline结构
### 黄历搜索 (almanac-search)
- 每日宜忌查询
- 条件搜索(嫁娶、搬家、开市等)
- 搜索历史与模板
- `setup` - 初始化Docker环境
- `e2e-tests` - 执行端到端测试(并行4个分片
- `api-tests` - 执行API集成测试
- `test-report` - 合并测试报告
- `notify-failure` - 测试失败时发送Slack通知
- `nightly-tests` - 每日定时执行完整测试
### 紫微斗数 (ziwei)
- 自动排盘(支持公历输入
- 十二宫位完整展示
- 十四主星 + 辅星体系
- 三方四正分析
### 触发条件
- 推送到main或develop分支
- 创建Pull Request
- 每天凌晨2点定时执行
详细配置说明请参考:[WOODPECKER_CI.md](./WOODPECKER_CI.md)
## 测试框架特性
- ✅ 基于Playwright的现代化E2E测试框架
- ✅ 支持uniapp和admin模块的全流程业务测试
- ✅ 完整的测试数据管理和清理机制
- ✅ 丰富的测试辅助工具(表单、表格、断言等)
- ✅ 详细的测试日志和截图功能
- ✅ 多种测试报告格式(HTML、JSON、JUnit
- ✅ 完整的Woodpecker CI集成支持
- ✅ 支持多浏览器和多设备测试
## 文档
- [E2E测试框架详细文档](./everything-is-suitable-test/README.md)
- [快速入门指南](./everything-is-suitable-test/QUICKSTART.md)
- [Woodpecker CI配置文档](./WOODPECKER_CI.md)
## 测试覆盖
### Uniapp模块
- 黄历功能测试(搜索、详情、收藏、分享、历史记录)
- 用户功能测试(登录、注册、修改信息、退出、修改密码)
### Admin模块
- 用户管理测试(创建、编辑、删除、批量删除、导出)
- 角色管理测试(创建、编辑、分配权限、删除)
### API集成测试
- 用户CRUD操作
- 角色CRUD操作
- 菜单CRUD操作
- 分页查询
- 搜索功能
## 常用命令
```bash
# 运行所有测试
npm run test
# 运行特定测试文件
npx playwright test e2e/examples/user-management.spec.ts
# 有头模式运行
npm run test:headed
# 调试模式
npm run test:debug
# UI模式
npm run test:ui
# 查看测试报告
npm run test:report
```
## 贡献指南
1. Fork本仓库
2. 创建特性分支 (`git checkout -b feature/AmazingFeature`)
3. 提交更改 (`git commit -m 'Add some AmazingFeature'`)
4. 推送到分支 (`git push origin feature/AmazingFeature`)
5. 创建Pull Request
### 运势分析 (fortune)
- 每日/每月/每年运势
- 事业、财运、感情、健康多维度
- 幸运色、幸运数字、幸运方位
## 许可证
MIT License
## 联系方式
如有问题或建议,请联系开发团队。