aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/tests/README.md
blob: 97a802810bf84d55f29845e1f1b26f87689e84bf (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
# ConventionalRP 测试套件

本目录包含 ConventionalRP SDK 的所有单元测试。

## 测试文件

- `test_parser.py` - Parser 解析器测试
- `test_processor.py` - Processor 处理器测试
- `test_rule_extractor.py` - RuleExtractor 规则提取器测试
- `test_renderers.py` - 渲染器测试(HTML/JSON/Markdown)
- `test_pyo3.py` - PyO3 Rust 扩展测试

## 运行测试

### 运行所有测试

```bash
python tests/run_tests.py
```

### 运行单个测试文件

```bash
python -m unittest tests/test_parser.py
python -m unittest tests/test_processor.py
```

### 运行特定测试类

```bash
python -m unittest tests.test_parser.TestParser
```

### 运行特定测试方法

```bash
python -m unittest tests.test_parser.TestParser.test_load_rules_success
```

## 测试覆盖率

要查看测试覆盖率,请安装 `coverage` 并运行:

```bash
pip install coverage
coverage run -m unittest discover -s tests -p "test_*.py"
coverage report
coverage html  # 生成 HTML 报告
```

## 测试数据

测试使用临时文件来模拟规则文件和日志文件,测试完成后会自动清理。

## 添加新测试

创建新的测试文件时,请遵循以下约定:

1. 文件名以 `test_` 开头
2. 测试类继承自 `unittest.TestCase`
3. 测试方法以 `test_` 开头
4. 使用 `setUp()` 和 `tearDown()` 方法管理测试状态
5. 添加清晰的文档字符串说明测试目的