chore: 清理旧测试基础设施并添加新测试框架
- 清理废弃的 CI/CD 工作流文件与 dogfood 输出 - 添加 vitest 测试环境配置(mocks、setup 文件) - 添加算法、服务、页面、工具类的单元测试 - 更新 vitest 配置、依赖与文档
This commit is contained in:
@@ -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
|
||||
|
||||
## 联系方式
|
||||
|
||||
如有问题或建议,请联系开发团队。
|
||||
|
||||
Reference in New Issue
Block a user