""" pytest 配置文件 定义全局 fixtures 和配置 """ import pytest import sys import os # 添加项目根目录到 Python 路径 project_root = os.path.abspath(os.path.join(os.path.dirname(__file__), '..')) if project_root not in sys.path: sys.path.insert(0, project_root) @pytest.fixture(scope="session") def project_root_path(): """返回项目根目录路径""" return project_root @pytest.fixture(scope="session") def test_data_dir(): """返回测试数据目录路径""" return os.path.join(os.path.dirname(__file__), 'test_data') @pytest.fixture(autouse=True) def reset_environment(): """每个测试前重置环境""" # 测试前的设置 yield # 测试后的清理 pass def pytest_configure(config): """pytest 配置钩子""" config.addinivalue_line( "markers", "integration: 标记集成测试(需要实际API服务)" ) config.addinivalue_line( "markers", "slow: 标记慢速测试" ) config.addinivalue_line( "markers", "unit: 标记单元测试" ) def pytest_collection_modifyitems(config, items): """修改测试收集项""" for item in items: # 为所有异步测试添加 asyncio 标记 if "asyncio" in item.keywords: item.add_marker(pytest.mark.asyncio)