Files
cangku/test/README_GUI_TESTS.md
liangweihao 8aa1a5ac91 添加PyQt GUI自动化测试套件
新增5个GUI测试模块,覆盖所有主要功能:
- test_login_gui.py: 登录和密码管理测试(7个测试)
- test_stock_gui.py: 库存管理测试(4个测试)
- test_raw_material_gui.py: 原料管理测试(7个测试)
- test_garment_gui.py: 款式管理测试(2个测试)
- test_purchase_order_gui.py: 采购单生成测试(2个测试)

测试特点:
- 真实GUI交互测试(填写表单、点击按钮、搜索过滤)
- 业务逻辑验证(重复数据拒绝、空值验证、计算正确性)
- 独立测试环境(临时数据库,自动清理)
- 自动化消息框(Mock QMessageBox)

总计22个GUI测试,全部通过 ✓

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-27 16:52:30 +08:00

3.6 KiB
Raw Blame History

GUI测试文档

概述

本项目已为所有主要模块创建了基于PyQt的GUI集成测试用于测试实际的用户界面交互和业务逻辑。

测试文件列表

1. test_login_gui.py - 登录对话框GUI测试

测试数量: 7个测试 测试内容:

  • 管理员登录成功/失败
  • 普通用户登录成功/失败
  • 获取默认密码
  • 设置新密码
  • 使用新密码登录

2. test_stock_gui.py - 库存管理GUI测试

测试数量: 4个测试 测试内容:

  • 加载原料列表
  • 搜索原料
  • 库存数量计算
  • 库存扣除消耗后的计算

3. test_raw_material_gui.py - 原料管理GUI测试

测试数量: 7个测试 测试内容:

  • 添加基本原料
  • 添加重复型号(验证拒绝)
  • 添加空型号(验证拒绝)
  • 删除原料
  • 编辑原料
  • 按类目过滤
  • 按型号搜索

4. test_garment_gui.py - 款式管理GUI测试

测试数量: 2个测试 测试内容:

  • 加载款式列表
  • 搜索款式

5. test_purchase_order_gui.py - 采购单生成GUI测试

测试数量: 2个测试 测试内容:

  • 生成采购单
  • 材料用量计算

测试统计

总测试数量: 22个测试 测试状态: ✓ 全部通过 测试时间: ~14秒

运行测试

运行单个模块测试

# 登录测试
python test\test_login_gui.py -v

# 库存测试
python test\test_stock_gui.py -v

# 原料测试
python test\test_raw_material_gui.py -v

# 款式测试
python test\test_garment_gui.py -v

# 采购单测试
python test\test_purchase_order_gui.py -v

运行所有GUI测试

cd test
python -m unittest test_login_gui.py test_stock_gui.py test_raw_material_gui.py test_garment_gui.py test_purchase_order_gui.py -v

测试特点

1. 真实GUI交互

  • 模拟用户填写表单
  • 模拟点击按钮
  • 模拟选择下拉框
  • 模拟输入搜索关键词

2. 业务逻辑验证

  • 验证重复数据拒绝
  • 验证空值验证
  • 验证数据计算正确性
  • 验证过滤和搜索功能

3. 独立测试环境

  • 每个测试使用临时数据库
  • 测试之间互不干扰
  • 自动清理测试数据

4. 自动化消息框

  • Mock了QMessageBox以便自动化测试
  • 不需要人工点击确认对话框
  • 可以验证警告和错误消息

测试架构

test/
├── test_login_gui.py          # 登录对话框测试
├── test_stock_gui.py          # 库存管理测试
├── test_raw_material_gui.py   # 原料管理测试
├── test_garment_gui.py        # 款式管理测试
├── test_purchase_order_gui.py # 采购单生成测试
└── README_GUI_TESTS.md        # 本文档

依赖项

  • Python 3.x
  • PyQt5
  • sqlite3 (内置)
  • unittest (内置)

注意事项

  1. 测试需要在有GUI环境的系统上运行
  2. 测试会创建临时数据库文件,测试后自动清理
  3. 所有消息框已被Mock不会弹出实际对话框
  4. 测试使用独立的QApplication实例

扩展测试

如需添加新的GUI测试请参考现有测试文件的结构

  1. 继承 unittest.TestCase
  2. setUpClass 中创建 QApplication 实例
  3. setUp 中创建临时数据库和对话框
  4. Mock消息框以便自动化
  5. tearDown 中清理资源
  6. 编写具体的测试方法

测试覆盖率

当前GUI测试覆盖了以下核心功能

  • ✓ 用户登录和密码管理
  • ✓ 原料库管理(增删改查)
  • ✓ 库存管理和计算
  • ✓ 款式管理
  • ✓ 采购单生成和计算

维护建议

  1. 每次修改GUI代码后运行相关测试
  2. 添加新功能时同步添加GUI测试
  3. 定期运行所有测试确保系统稳定性
  4. 保持测试代码的可读性和可维护性