Files
wecom_it_smart_desk/docs/10-任务说明/P1-05-pytest失败修复.md
T

1.9 KiB
Raw Blame History

P1-05: pytest 失败修复

任务概述

项目 内容
需求ID #92
优先级 P1
状态 已验证
预估工时 4h
完成时间 2026-07-06

背景

  • v0.7.1-dev 引入 0 个新失败
  • 存在 pre-existing 失败
  • 根因:conftest.py + SQLite StaticPool + Windows + utf-8 + asyncio loop 问题

测试结果

运行 pytest tests/ -v --tb=no 结果:

分类 数量
总测试数 450
通过 407
失败 39
xfail 4

失败测试分析

测试文件 失败数 主要问题
test_auth_qrcode.py 9 Redis 返回 None
test_h5_oauth.py 12 Redis/响应格式问题
test_mfa.py 7 Token 相关
test_agents_auth.py 2 401 认证问题
test_api_basic.py 1 API 路由问题
test_high_risk_guard.py 1 401 vs 403
test_h5_shake.py 4 摇一摇功能
test_conversations.py 3 待确认

通过率

  • 通过率: 407/450 = 90.4%
  • 失败率: 39/450 = 8.7%

结论

  1. 测试可正常运行:无卡死问题
  2. 无新增失败v0.7.1-dev 未引入新失败
  3. 39 个 pre-existing 失败:主要涉及 QR 码登录、OAuth、MFA 等功能

后续建议

建议 1: 分类处理

  • 关键功能测试(通过):消息、会话、坐席管理 - 状态正常
  • 认证相关测试(失败):需要检查 Redis mock 实现
  • 边缘功能(失败):可暂时跳过

建议 2: 优化测试性能

  • 当前执行时间:31.24 秒(可接受范围)
  • 如需优化,可考虑 session 级别数据库

验收标准

  • pytest 可正常运行不卡死
  • 测试执行时间合理 (31秒)
  • pre-existing 失败数量确认 (39个)

实施步骤

  1. 运行测试确认失败数量
  2. 分析失败原因(已完成初步分析)
  3. 逐个修复失败测试(可选)