| [pytest] | |
| # Pytest configuration for Phase 5 | |
| # Test discovery patterns | |
| python_files = test_*.py | |
| python_classes = Test* | |
| python_functions = test_* | |
| # Test paths | |
| testpaths = tests | |
| # Output options | |
| addopts = | |
| -v | |
| --strict-markers | |
| --tb=short | |
| --cov=src | |
| --cov-report=term-missing | |
| --cov-report=html:htmlcov | |
| --cov-report=xml | |
| --asyncio-mode=auto | |
| # Markers | |
| markers = | |
| unit: Unit tests (fast, isolated) | |
| integration: Integration tests (slower, require DB) | |
| contract: Contract tests (API specification verification) | |
| e2e: End-to-end tests (full workflows) | |
| performance: Performance tests (SLA verification) | |
| slow: Slow tests (run separately) | |
| # Logging | |
| log_cli = true | |
| log_cli_level = INFO | |
| log_cli_format = %(asctime)s [%(levelname)8s] %(message)s | |
| # Warnings | |
| filterwarnings = | |
| error | |
| ignore::DeprecationWarning | |
| ignore::PendingDeprecationWarning | |
| # Coverage options | |
| [coverage:run] | |
| source = src | |
| omit = | |
| */tests/* | |
| */test_*.py | |
| */__pycache__/* | |
| */migrations/* | |
| [coverage:report] | |
| precision = 2 | |
| show_missing = true | |
| skip_covered = False | |
| [coverage:html] | |
| directory = htmlcov | |