| π Navigation: π Home | π Docs | π₯ Health Monitoring | βοΈ Features |
A comprehensive Tkinter-based test management dashboard for CrawlLama.
β
Automatic Test Discovery - Finds all test_*.py files in the tests/ folder
β
Single & Batch Execution - Run tests individually or all at once
β
Live Progress Tracking - Real-time status during execution
β
Detailed Error Logs - Complete tracebacks and error details
β
Categorization - Tests grouped by type (Unit, Integration, OSINT, etc.)
β
Export Functions - Export results as JSON or HTML
β
Parallel Execution - Optionally run tests in parallel
# Basic requirements
pip install pytest pytest-json-report pytest-timeout
# Optional for clipboard support
pip install pyperclip
Windows & macOS: Tkinter is usually already installed with Python.
Linux:
# Ubuntu/Debian
sudo apt-get install python3-tk
# Fedora
sudo dnf install python3-tkinter
# Arch
sudo pacman -S tk
python health-dashboard.py
This opens the Health Dashboard GUI.
Shows live updates during test execution:
Shows detailed error information:
File β Export Results (JSON)
Exports complete test results in JSON format:
{
"summary": {
"total_tests": 15,
"passed": 12,
"failed": 2,
"skipped": 1,
"pass_rate": 80.0,
"duration": 15.8
},
"results": [...],
"failed_tests": [...],
"category_summary": {...}
}
File β Export Results (HTML)
Generates a clear HTML report with:
core/health/
βββ __init__.py # Module init
βββ dashboard.py # Main GUI
βββ test_collector.py # Test discovery
βββ test_runner.py # Test execution
βββ result_parser.py # Result parsing
βββ widgets/ # Custom widgets
βββ test_tree.py # TreeView for tests
βββ status_card.py # Status cards
βββ progress_panel.py # Progress bar
βββ log_viewer.py # Error log viewer
TestCollector β Finds all test_*.py β Parses functions
TestRunner β pytest subprocess β JSON Report β Result Parsing
Callback β Update TreeView β Update Status Cards β Update Logs
Tests are automatically categorized based on filenames:
| Category | Keywords | Examples |
|---|---|---|
| Unit | cache, llm_client, rate_limiter | test_cache.py |
| Integration | integration, web_search | test_integration.py |
| OSINT | osint, ddgs | test_osint.py |
| Robustness | robustness, error_simulation | test_robustness_simple.py |
| Multihop | multihop_reasoning | test_multihop_reasoning.py |
Enable βParallel Executionβ checkbox for faster test execution:
# Ensure tests/ directory exists
# Windows (PowerShell)
Get-ChildItem tests\
# Linux/Mac
ls tests/
# Test discovery manually
python -c "from core.health import TestCollector; print(TestCollector().discover_tests())"
pip install pytest pytest-json-report
# Windows/macOS: Reinstall Python with tcl/tk support
# Linux: Install python3-tk (see Installation above)
# Use dashboard for CI/CD reports too
pytest --json-report --json-report-file=results.json
# Load results.json into dashboard
βββββββββββββββββββββββββββββββββββββββββββββββ
π¦ CrawlLama Health Dashboard
βββββββββββββββββββββββββββββββββββββββββββββββ
β
Checking dependencies...
β
All dependencies available
Launching Health Dashboard...
Close the window or press Ctrl+C to exit
[Dashboard GUI opens]
βββββββββββββββββββββββββββββββββββββββββββββββ
Test Results
βββββββββββββββββββββββββββββββββββββββββββββββ
Total Tests: 15
Passed: 12
Failed: 2
Skipped: 1
Pass Rate: 80.0%
Duration: 15.8s
βββββββββββββββββββββββββββββββββββββββββββββββ
The dashboard can be easily extended:
test_collector.pyresult_parser.pywidgets/If you have problems:
pytest --versionpytest tests/test_example.py -vPart of the CrawlLama project Β© 2025