refactor(): 重构动态用例生成逻辑并解耦核心组件
- 将 `CaseGenerator` 拆分为 `CaseDataLoader`(数据加载)和 `CaseGenerator`(用例构造),实现单一职责原则。 - 引入 `TestTemplateBase` 作为纯净的方法挂载容器,避免逻辑代码污染测试用例。 - 优化 YAML 解析流程,将文件扫描、参数化解析与 pytest 方法构建逻辑完全分离。 - 改进装饰器写法,使用更直观的 @ 语法糖处理 Allure 和 pytest.mark.parametrize。 - 增强执行日志,通过类型注解和实例引用记录更详细的运行上下文。
This commit is contained in:
52
core/settings.py
Normal file
52
core/settings.py
Normal file
@@ -0,0 +1,52 @@
|
||||
#!/usr/bin/env python
|
||||
# coding=utf-8
|
||||
|
||||
"""
|
||||
@author: CNWei
|
||||
@Software: PyCharm
|
||||
@contact: t6i888@163.com
|
||||
@file: settings
|
||||
@date: 2025/2/23 21:34
|
||||
@desc:
|
||||
"""
|
||||
import os
|
||||
from pathlib import Path
|
||||
|
||||
from dotenv import load_dotenv
|
||||
|
||||
BASE_DIR = (Path(__file__)).resolve().parents[1]
|
||||
|
||||
load_dotenv()
|
||||
|
||||
# --- 目录配置 ---
|
||||
TEST_CASE_DIR = BASE_DIR / "test_cases"
|
||||
|
||||
OUTPUT_DIR = BASE_DIR / "outputs"
|
||||
SCREENSHOT_DIR = OUTPUT_DIR / "screenshots"
|
||||
LOG_DIR = OUTPUT_DIR / "logs"
|
||||
LOG_BACKUP_DIR = LOG_DIR / "backups"
|
||||
|
||||
ALLURE_TEMP = BASE_DIR / "temp"
|
||||
REPORT_DIR = BASE_DIR / "reports"
|
||||
CONFIG_DIR = BASE_DIR / "config"
|
||||
DATA_DIR = BASE_DIR / "data"
|
||||
|
||||
test_suffix = "yaml"
|
||||
|
||||
base_url = os.getenv("BASE_URL")
|
||||
db_host = os.getenv("DB_HOST") # ip
|
||||
db_port = os.getenv("DB_PORT") # 端口
|
||||
db_user = os.getenv("DB_USER") # 用户名
|
||||
db_password = os.getenv("DB_PASSWORD") # 密码
|
||||
db_database = os.getenv("DB_DATABASE")
|
||||
|
||||
allure_epic: str = "项目名称:answer"
|
||||
allure_feature: str = "默认特征(feature)"
|
||||
allure_story: str = "默认事件(story)"
|
||||
|
||||
rsa_public = ""
|
||||
rsa_private = ""
|
||||
|
||||
if __name__ == '__main__':
|
||||
print(BASE_DIR)
|
||||
print(BASE_DIR, db_host, db_port, db_user, db_password, db_database)
|
||||
Reference in New Issue
Block a user