66 lines
1.4 KiB
INI
66 lines
1.4 KiB
INI
[pytest]
|
|
# Pytest configuration for Clean Tracks
|
|
|
|
# Test discovery patterns
|
|
python_files = test_*.py *_test.py
|
|
python_classes = Test*
|
|
python_functions = test_*
|
|
|
|
# Test directories
|
|
testpaths = tests
|
|
|
|
# Output options
|
|
addopts =
|
|
-v
|
|
--strict-markers
|
|
--tb=short
|
|
--cov=src
|
|
--cov-report=term-missing
|
|
--cov-report=html:htmlcov
|
|
--cov-report=xml
|
|
--cov-fail-under=70
|
|
--maxfail=5
|
|
--disable-warnings
|
|
--color=yes
|
|
|
|
# Markers for test categorization
|
|
markers =
|
|
unit: Unit tests for individual components
|
|
integration: Integration tests for API endpoints
|
|
e2e: End-to-end tests using Playwright
|
|
slow: Tests that take a long time to run
|
|
cli: Tests for CLI commands
|
|
websocket: Tests for WebSocket functionality
|
|
security: Security-related tests
|
|
performance: Performance benchmarking tests
|
|
accessibility: Accessibility tests
|
|
visual: Visual regression tests
|
|
|
|
# Logging
|
|
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
|
|
|
|
# Coverage configuration
|
|
[coverage:run]
|
|
source = src
|
|
omit =
|
|
*/tests/*
|
|
*/test_*.py
|
|
*/__pycache__/*
|
|
*/venv/*
|
|
*/setup.py
|
|
|
|
[coverage:report]
|
|
exclude_lines =
|
|
pragma: no cover
|
|
def __repr__
|
|
raise AssertionError
|
|
raise NotImplementedError
|
|
if __name__ == .__main__.:
|
|
if TYPE_CHECKING:
|
|
@abstractmethod
|
|
|
|
[coverage:html]
|
|
directory = htmlcov |