mirror of
https://github.com/DRYTRIX/TimeTracker.git
synced 2025-12-31 00:09:58 -06:00
Implement a complete, production-ready CI/CD pipeline that runs 100% on GitHub Actions with zero external dependencies. This replaces and consolidates existing workflows with an optimized, streamlined pipeline. ## Major Changes - Add 3 new workflows (ci-comprehensive, cd-development, cd-release) - Remove 2 redundant workflows (backed up) - Add 130+ tests across 4 new test files - Add 8 documentation guides (60+ KB) - Add developer tools and scripts
68 lines
1.4 KiB
INI
68 lines
1.4 KiB
INI
[pytest]
|
|
# Pytest configuration for TimeTracker
|
|
|
|
# Test discovery patterns
|
|
python_files = test_*.py
|
|
python_classes = Test*
|
|
python_functions = test_*
|
|
|
|
# Test paths
|
|
testpaths = tests
|
|
|
|
# Output options
|
|
addopts =
|
|
# Verbosity and output
|
|
-v
|
|
--tb=short
|
|
--strict-markers
|
|
--color=yes
|
|
|
|
# Coverage (optional)
|
|
--cov=app
|
|
--cov-report=html
|
|
--cov-report=term-missing
|
|
--cov-report=xml
|
|
--cov-fail-under=50
|
|
|
|
# Warnings
|
|
-W ignore::DeprecationWarning
|
|
-W ignore::PendingDeprecationWarning
|
|
|
|
# Performance
|
|
--durations=10
|
|
|
|
# Test markers for different test levels
|
|
markers =
|
|
smoke: Quick smoke tests (fastest, runs on every commit)
|
|
unit: Unit tests (fast, isolated tests)
|
|
integration: Integration tests (medium speed, tests component interaction)
|
|
api: API endpoint tests
|
|
database: Database-related tests
|
|
models: Model tests
|
|
routes: Route/endpoint tests
|
|
security: Security-related tests
|
|
performance: Performance and load tests
|
|
slow: Slow running tests
|
|
requires_db: Tests that require database connection
|
|
requires_network: Tests that require network access
|
|
skip_ci: Tests to skip in CI environment
|
|
|
|
# Coverage configuration
|
|
[coverage:run]
|
|
source = app
|
|
omit =
|
|
*/tests/*
|
|
*/test_*.py
|
|
*/__pycache__/*
|
|
*/venv/*
|
|
*/env/*
|
|
|
|
[coverage:report]
|
|
precision = 2
|
|
show_missing = True
|
|
skip_covered = False
|
|
|
|
[coverage:html]
|
|
directory = htmlcov
|
|
|