Files
AIclinicalresearch/tests/README_测试说明.md
HaHafeng 440f75255e feat(rvw): Complete Phase 4-5 - Bug fixes and Word export
Summary:
- Fix methodology score display issue in task list (show score instead of 'warn')
- Add methodology_score field to database schema
- Fix report display when only methodology agent is selected
- Implement Word document export using docx library
- Update documentation to v3.0/v3.1

Backend changes:
- Add methodologyScore to Prisma schema and TaskSummary type
- Update reviewWorker to save methodologyScore
- Update getTaskList to return methodologyScore

Frontend changes:
- Install docx and file-saver libraries
- Implement handleExportReport with Word generation
- Fix activeTab auto-selection based on available data
- Add proper imports for docx components

Documentation:
- Update RVW module status to 90% (Phase 1-5 complete)
- Update system status document to v3.0

Tested: All review workflows verified, Word export functional
2026-01-10 22:52:15 +08:00

6.0 KiB
Raw Blame History

缺失值处理功能 - 自动化测试说明

📋 测试脚本功能

自动化测试脚本 test_fillna_operations.py 会自动测试缺失值处理的所有功能,包括:

18个测试用例

基础测试6个

  1. 均值填补数值列
  2. 中位数填补偏态分布列
  3. 众数填补分类列
  4. 固定值填补0
  5. 前向填充ffill
  6. 后向填充bfill

MICE测试4个

  1. MICE填补单列
  2. MICE填补多列
  3. MICE填补 - 不同迭代次数
  4. MICE填补 - 自定义随机种子

边界测试4个

  1. 100%缺失的列
  2. 0%缺失的列(无需填补)
  3. 统计API功能
  4. 特殊字符列名处理

数据类型测试4个

  1. 数值列int/float
  2. 分类列(字符串)
  3. 混合类型列
  4. 性能测试1000行

🚀 快速开始

步骤1: 启动Python服务

cd AIclinicalresearch/extraction_service
python main.py

确认服务启动成功:看到 Application startup complete 或访问 http://localhost:8001/health


步骤2: 运行测试脚本

方法1 - 在项目根目录运行

cd AIclinicalresearch
python tests/test_fillna_operations.py

方法2 - 在tests目录运行

cd AIclinicalresearch/tests
python test_fillna_operations.py

📊 测试输出示例

╔══════════════════════════════════════════════════════════════════╗
║                                                                  ║
║       缺失值处理功能 - 自动化测试脚本 v1.0                      ║
║                                                                  ║
║       测试内容: 18个测试用例                                     ║
║       - 6个基础填补测试                                          ║
║       - 4个MICE测试                                              ║
║       - 4个边界测试                                              ║
║       - 4个数据类型测试                                          ║
║                                                                  ║
╚══════════════════════════════════════════════════════════════════╝

================================================================================
                        缺失值处理功能 - 自动化测试
================================================================================

  检查Python服务状态...
✅ Python服务运行正常

  生成测试数据...
✅ 生成了 5 个测试数据集
  • numeric: 100 行 × 4 列
  • categorical: 100 行 × 3 列
  • timeseries: 100 行 × 3 列
  • edge_cases: 10 行 × 4 列
  • mixed: 100 行 × 4 列

[1/18] 均值填补数值列
--------------------------------------------------------------------------------
✅ 均值填补成功,缺失值已全部填补
✅ ✓ 新列位置正确(紧邻原列)

[2/18] 中位数填补偏态分布列
--------------------------------------------------------------------------------
✅ 中位数填补成功

...

================================================================================
                                  测试总结
================================================================================

总测试数: 18
✅ 通过: 18
❌ 失败: 0
通过率: 100.0%
总耗时: 45.32秒

                         🎉 所有测试通过!

🔧 依赖安装

测试脚本需要以下Python包

pip install pandas numpy requests

这些包在 extraction_service/requirements.txt 中已经包含。


⚙️ 配置

修改服务地址

如果Python服务不在默认端口 8001,修改脚本开头:

PYTHON_SERVICE_URL = "http://localhost:8001"  # 修改为你的端口

📝 测试结果说明

颜色含义

  • 🟢 绿色 (): 测试通过
  • 🔴 红色 (): 测试失败
  • 🟡 黄色 (⚠️): 警告信息
  • 🔵 蓝色 (): 提示信息

通过标准

  • API返回成功
  • 新列创建正确
  • 缺失值被正确填补
  • 新列位置在原列旁边

🐛 常见问题

1. 无法连接到Python服务

错误: 无法连接到Python服务: Connection refused

解决:

# 确保Python服务已启动
cd AIclinicalresearch/extraction_service
python main.py

2. 模块未找到

错误: ModuleNotFoundError: No module named 'pandas'

解决:

pip install pandas numpy requests

3. 部分测试失败

现象: 通过率 < 100%

处理:

  1. 查看失败测试的具体错误信息
  2. 检查Python服务日志
  3. 确认数据格式是否正确

🔍 调试技巧

1. 单独运行某个测试

修改 test_fillna_operations.pyrun_all_tests() 方法,只保留需要测试的用例:

tests = [
    (self.test_1_mean_fill, "基础"),  # 只测试这一个
]

2. 查看详细日志

在测试函数中添加:

print(json.dumps(result, indent=2, ensure_ascii=False))

3. 保存测试数据

generate_test_data() 中添加:

df_numeric.to_excel('test_data/numeric_test.xlsx', index=False)

📈 性能基准

参考值(在普通笔记本上):

  • 简单填补(均值/中位数/众数): < 1秒
  • 前向/后向填充: < 1秒
  • MICE填补 100行: 2-5秒
  • MICE填补 1000行: 20-40秒
  • 全部18个测试: 45-60秒

🎯 下一步

测试通过后:

  1. 在真实数据上测试
  2. 测试前端集成
  3. 性能优化(如有需要)

📞 技术支持

如有问题,请检查:

  1. Python服务日志
  2. 测试脚本输出
  3. 开发文档:工具C_缺失值处理_开发完成说明.md