[build-system] requires = ["setuptools>=45", "wheel"] build-backend = "setuptools.build_meta" [project] name = "tests-suite" version = "1.0.0" description = "统一测试套件 - Novalon管理系统" authors = [ {name = "张翔", email = "zhangxiang@example.com"} ] readme = "README.md" requires-python = ">=3.9" classifiers = [ "Development Status :: 4 - Beta", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.9", "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", ] [tool.pytest.ini_options] testpaths = ["tests"] python_files = ["test_*.py"] python_classes = ["Test*"] python_functions = ["test_*"] addopts = [ "-v", "--strict-markers", "--tb=short", "--cov=test_utils", "--cov-report=html", "--cov-report=term-missing", "--alluredir=allure-results", ] markers = [ "unit: 单元测试", "integration: 集成测试", "e2e: 端到端测试", "performance: 性能测试", "security: 安全测试", "smoke: 冒烟测试", "regression: 回归测试", "slow: 慢速测试", "playwright: Playwright浏览器自动化测试", "auth: 认证相关测试", "user: 用户管理测试", "role: 角色管理测试", "permission: 权限管理测试", "menu: 菜单管理测试", "websocket: WebSocket实时通信测试", "example: 示例测试", "exception: 异常场景测试", "dictionary: 字典管理测试", "dict: 字典管理测试", "config: 系统配置测试", "audit: 审计日志测试", "notice: 通知公告测试", "file: 文件管理测试", ] asyncio_mode = "auto" [tool.coverage.run] source = ["test_utils"] omit = [ "*/tests/*", "*/test_*.py", "*/__pycache__/*", "*/site-packages/*", ] [tool.coverage.report] exclude_lines = [ "pragma: no cover", "def __repr__", "raise AssertionError", "raise NotImplementedError", "if __name__ == .__main__.:", "if TYPE_CHECKING:", "@abstractmethod", ] [tool.black] line-length = 100 target-version = ['py39', 'py310', 'py311', 'py312', 'py313'] include = '\.pyi?$' extend-exclude = ''' /( # directories \.eggs | \.git | \.hg | \.mypy_cache | \.tox | \.venv | build | dist )/ ''' [tool.isort] profile = "black" line_length = 100 multi_line_output = 3 include_trailing_comma = true force_grid_wrap = 0 use_parentheses = true ensure_newline_before_comments = true