SuperAPI AI 工具集

pyqt-testing

测试与质量

查看项目

更新于 10-15 20:13

技能介绍

用途:为 PyQt/PySide6 桌面应用编写自动化测试,基于 pytest-qt 提供可复用的测试模式与示例。

主要能力:qtbot fixture 用于注册控件并模拟交互,如 mouseClick、mouseDClick、keyClicks、keyPress/keyRelease,支持鼠标按键与键盘修饰键;waitSignal/waitSignals 等待信号并检查参数,支持 timeout 与 raising;waitActive、waitExposed 等待窗口激活与显示;对话框测试通过 QTimer.singleShot 在打开后点击按钮并断言 exec 返回值;模型/视图测试覆盖 QAbstractListModel 的 rowCount、data 及 rowsInserted 等信号;线程测试用 waitSignal 等待 QThread 完成并收集信号,也可测试取消逻辑。

使用方式:安装命令为 pip install pytest-qt。测试中通过 qtbot.addWidget() 注册控件以保证清理;异步操作使用 waitSignal 配合超时;避免真实延时,改用 QTimer.singleShot;在 conftest.py 中定义 qapp、main_window、temp_settings 等共享 fixture。

适用场景:Qt 控件交互、信号槽、对话框、模型/视图、后台线程等行为验证。

限制与建议:资料未提供收费、平台或效果信息。建议测试信号与行为而非实现细节,保持测试独立;截图仅作视觉参考,逻辑断言应读取控件或模型的精确状态;Presenter 模式可将业务逻辑与 Qt 解耦,便于无 QApplication 的单元测试;变异测试建议仅针对非 UI 逻辑,并注意 qapp fixture 在 fork 场景下的风险。