- Fixed Qt6 opacity animations (QGraphicsOpacityEffect) - Added missing TrayIcon show/hide methods - Enhanced error handling throughout - Safe attribute access for plugin loading - Fixed AA_EnableHighDpiScaling compatibility - Added comprehensive try/except blocks |
||
|---|---|---|
| .. | ||
| e2e | ||
| integration | ||
| ui | ||
| unit | ||
| INTEGRATION_TEST_REPORT.md | ||
| README.md | ||
| __init__.py | ||
| conftest.py | ||
| integration_test_report.py | ||
| pytest_compat.py | ||
| run_all_tests.py | ||
| run_tests.py | ||
| test_comprehensive.py | ||
| test_nexus_api.py | ||
README.md
EU-Utility Test Suite
Comprehensive test suite for EU-Utility with >80% code coverage.
Structure
tests/
├── conftest.py # Shared fixtures and configuration
├── unit/ # Unit tests for core services
│ ├── test_event_bus.py
│ ├── test_plugin_api.py
│ ├── test_nexus_api.py
│ ├── test_data_store.py
│ ├── test_settings.py
│ ├── test_tasks.py
│ ├── test_log_reader.py
│ └── test_ocr_service.py
├── integration/ # Integration tests for plugins
│ ├── test_plugin_lifecycle.py
│ ├── test_plugin_communication.py
│ └── test_plugin_events.py
├── ui/ # UI automation tests
│ ├── test_overlay_window.py
│ └── test_dashboard.py
├── performance/ # Performance benchmarks
│ └── test_performance.py
├── mocks/ # Mock services for testing
│ ├── mock_overlay.py
│ ├── mock_api.py
│ └── mock_services.py
└── fixtures/ # Test data and fixtures
├── sample_logs/
└── sample_images/
Running Tests
# Run all tests
pytest
# Run with coverage report
pytest --cov=core --cov=plugins --cov-report=html
# Run specific test categories
pytest -m unit
pytest -m integration
pytest -m ui
pytest -m performance
# Run tests excluding slow ones
pytest -m "not slow"
# Run tests excluding network-dependent
pytest -m "not requires_network"
Coverage Requirements
- Core services: >90%
- Plugin base: >85%
- Integration tests: >80%
- Overall: >80%
CI/CD
Tests run automatically on:
- Every push to main
- Every pull request
- Nightly builds
See .github/workflows/test.yml for configuration.