-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathrun_test_workflow.py
More file actions
120 lines (103 loc) · 4.78 KB
/
run_test_workflow.py
File metadata and controls
120 lines (103 loc) · 4.78 KB
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
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
import os
import sys
from src.tools.main import process_root_request
# 确保输出目录存在
def ensure_output_dir():
output_dir = "d:/learnning/tools_ex2/output/ex1"
os.makedirs(output_dir, exist_ok=True)
print(f"确保输出目录存在: {output_dir}")
# 测试需求文档生成
def test_requirement_document():
print("\n===== 测试需求文档生成 =====")
user_input = "创建一个简单的用户管理系统,包含用户注册、登录、查询和删除功能"
result = process_root_request("requirement_document", user_input)
print(f"需求文档处理结果: {result.get('status')}")
return result
# 测试设计文档生成
def test_design_document():
print("\n===== 测试设计文档生成 =====")
user_input = "基于用户管理系统的需求,设计系统架构,包含控制器、服务层和数据访问层"
result = process_root_request("design_document", user_input)
print(f"设计文档处理结果: {result.get('status')}")
return result
# 测试代码生成
def test_codes_document():
print("\n===== 测试代码生成任务列表 =====")
user_input = "根据设计生成用户管理系统的核心代码文件,包括用户控制器、服务层和数据模型"
result = process_root_request("codes_document", user_input)
print(f"代码任务列表处理结果: {result.get('status')}")
if result.get('status') == 'success' and 'result' in result:
print(f"生成的代码任务数: {len(result['result'].get('tasks', []))}")
return result
# 测试单个代码文件生成 (用于测试递归调用)
def test_code_document():
print("\n===== 测试单个代码文件生成 =====")
user_input = "生成用户服务模块的实现代码,包含用户的创建、查询、更新和删除功能"
result = process_root_request("code_document", user_input)
print(f"单个代码文件处理结果: {result.get('status')}")
if result.get('status') == 'success' and 'result' in result:
print(f"生成的文件路径: {result['result'].get('file_path')}")
return result
# 测试测试用例文档生成
def test_testcases_document():
print("\n===== 测试测试用例文档生成 =====")
user_input = "为用户管理系统编写测试用例,覆盖所有核心功能"
result = process_root_request("testcases_document", user_input)
print(f"测试用例文档处理结果: {result.get('status')}")
return result
# 测试测试代码生成任务列表
def test_testcases_code_document():
print("\n===== 测试测试代码生成任务列表 =====")
user_input = "为用户管理系统生成测试代码,包括单元测试和集成测试"
result = process_root_request("testcases_code_document", user_input)
print(f"测试代码任务列表处理结果: {result.get('status')}")
if result.get('status') == 'success' and 'result' in result:
print(f"生成的测试代码任务数: {len(result['result'].get('tasks', []))}")
return result
# 测试单个测试文件生成
def test_testcase_document():
print("\n===== 测试单个测试文件生成 =====")
user_input = "生成用户服务的单元测试代码"
result = process_root_request("testcase_document", user_input)
print(f"单个测试文件处理结果: {result.get('status')}")
if result.get('status') == 'success' and 'result' in result:
print(f"生成的测试文件路径: {result['result'].get('file_path')}")
return result
# 检查输出目录内容
def check_output_files():
print("\n===== 检查输出目录内容 =====")
base_dir = "d:/learnning/tools_ex2/output/ex1"
if not os.path.exists(base_dir):
print(f"输出目录不存在: {base_dir}")
return
# 遍历目录结构
for root, dirs, files in os.walk(base_dir):
level = root.replace(base_dir, '').count(os.sep)
indent = ' ' * 4 * level
print(f"{indent}{os.path.basename(root)}/")
subindent = ' ' * 4 * (level + 1)
for file in files:
print(f"{subindent}{file}")
print("\n注意: 已取消所有测试文件的清理功能,生成的文件将被保留以便检查。")
# 主函数
def main():
try:
# 确保输出目录存在
ensure_output_dir()
# 运行整个流程测试
test_requirement_document()
test_design_document()
test_testcases_document()
test_codes_document()
test_code_document()
test_testcases_code_document()
test_testcase_document()
# 检查输出文件
check_output_files()
print("\n===== 测试完成 =====")
except Exception as e:
print(f"测试过程中出错: {str(e)}")
import traceback
traceback.print_exc()
if __name__ == "__main__":
main()