[pytest] addopts = --strict-markers --strict-config --verbose --tb=short --durations=10 --maxfail=3 -ra testpaths = tests norecursedirs = .markitect_workspace .git __pycache__ .pytest_cache asyncio_mode = auto asyncio_default_fixture_loop_scope = function python_files = test_*.py *_test.py python_classes = Test* python_functions = test_* markers = slow: marks tests as slow (deselect with '-m "not slow"') integration: marks tests as integration tests e2e: marks tests as end-to-end tests performance: marks tests as performance tests unit: marks tests as unit tests smoke: marks tests as smoke tests for quick validation asyncio: marks tests as async tests timeout(seconds): marks tests with custom timeout duration arch: marks tests as architecture tests fast: marks tests as fast execution tests (for TDD red phase) filterwarnings = log_cli = true log_cli_level = INFO log_cli_format = %(asctime)s [%(levelname)8s] %(name)s: %(message)s log_cli_date_format = %Y-%m-%d %H:%M:%S