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

295 lines
6.0 KiB
Markdown
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 缺失值处理功能 - 自动化测试说明
## 📋 测试脚本功能
自动化测试脚本 `test_fillna_operations.py` 会自动测试缺失值处理的所有功能,包括:
### ✅ 18个测试用例
#### 基础测试6个
1. 均值填补数值列
2. 中位数填补偏态分布列
3. 众数填补分类列
4. 固定值填补0
5. 前向填充ffill
6. 后向填充bfill
#### MICE测试4个
7. MICE填补单列
8. MICE填补多列
9. MICE填补 - 不同迭代次数
10. MICE填补 - 自定义随机种子
#### 边界测试4个
11. 100%缺失的列
12. 0%缺失的列(无需填补)
13. 统计API功能
14. 特殊字符列名处理
#### 数据类型测试4个
15. 数值列int/float
16. 分类列(字符串)
17. 混合类型列
18. 性能测试1000行
---
## 🚀 快速开始
### 步骤1: 启动Python服务
```bash
cd AIclinicalresearch/extraction_service
python main.py
```
**确认服务启动成功**:看到 `Application startup complete` 或访问 `http://localhost:8001/health`
---
### 步骤2: 运行测试脚本
**方法1 - 在项目根目录运行**
```bash
cd AIclinicalresearch
python tests/test_fillna_operations.py
```
**方法2 - 在tests目录运行**
```bash
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包
```bash
pip install pandas numpy requests
```
这些包在 `extraction_service/requirements.txt` 中已经包含。
---
## ⚙️ 配置
### 修改服务地址
如果Python服务不在默认端口 `8001`,修改脚本开头:
```python
PYTHON_SERVICE_URL = "http://localhost:8001" # 修改为你的端口
```
---
## 📝 测试结果说明
### 颜色含义
- 🟢 **绿色** (✅): 测试通过
- 🔴 **红色** (❌): 测试失败
- 🟡 **黄色** (⚠️): 警告信息
- 🔵 **蓝色** (): 提示信息
### 通过标准
- ✅ API返回成功
- ✅ 新列创建正确
- ✅ 缺失值被正确填补
- ✅ 新列位置在原列旁边
---
## 🐛 常见问题
### 1. 无法连接到Python服务
**错误**: `无法连接到Python服务: Connection refused`
**解决**:
```bash
# 确保Python服务已启动
cd AIclinicalresearch/extraction_service
python main.py
```
---
### 2. 模块未找到
**错误**: `ModuleNotFoundError: No module named 'pandas'`
**解决**:
```bash
pip install pandas numpy requests
```
---
### 3. 部分测试失败
**现象**: 通过率 < 100%
**处理**:
1. 查看失败测试的具体错误信息
2. 检查Python服务日志
3. 确认数据格式是否正确
---
## 🔍 调试技巧
### 1. 单独运行某个测试
修改 `test_fillna_operations.py``run_all_tests()` 方法,只保留需要测试的用例:
```python
tests = [
(self.test_1_mean_fill, "基础"), # 只测试这一个
]
```
### 2. 查看详细日志
在测试函数中添加:
```python
print(json.dumps(result, indent=2, ensure_ascii=False))
```
### 3. 保存测试数据
`generate_test_data()` 中添加:
```python
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`