annator-command-center / tests /e2e /QUICKSTART.md
techprotrade's picture
Deploy ATOM FastAPI command center runtime (part 7)
cc036ff verified
|
Raw
History Blame Contribute Delete
4.48 kB
# E2E Testing Quick Start Guide
## Overview
This guide provides step-by-step instructions for running the end-to-end tests for Atom's high-impact features.
## Prerequisites
### 1. Install Dependencies
```bash
cd /Users/rushiparikh/projects/atom/backend
# Install pytest and plugins
pip install pytest pytest-asyncio pytest-cov pytest-benchmark pytest-xdist
# Install test dependencies
pip install httpx playwright freezegun
# Install Playwright browsers (for Scenario 5)
playwright install chromium
```
### 2. Configure Environment
```bash
# Required for LLM streaming tests (Scenario 2)
export OPENAI_API_KEY="sk-..."
export ANTHROPIC_API_KEY="sk-ant-..."
# Optional: Other providers
export DEEPSEEK_API_KEY="sk-..."
export GEMINI_API_KEY="..."
# Feature flags (automatically set by conftest.py)
export ATOM_ENVIRONMENT=test
export ATOM_DATABASE_URL="sqlite:///:memory:"
```
## Running Tests
### Run All E2E Scenarios
```bash
cd /Users/rushiparikh/projects/atom/backend
PYTHONPATH=/Users/rushiparikh/projects/atom/backend pytest tests/e2e/ -v -m e2e
```
### Run Individual Scenario
```bash
# Scenario 1: Agent Governance
pytest tests/e2e/test_scenario_01_governance.py -v -s
# Scenario 2: LLM Streaming
pytest tests/e2e/test_scenario_02_streaming.py -v -s
# Scenario 3: Canvas Presentations
pytest tests/e2e/test_scenario_03_canvas.py -v -s
# And so on...
```
### Run with Coverage
```bash
pytest tests/e2e/ -v -m e2e --cov=core --cov-report=html
open htmlcov/index.html
```
### Run in Parallel (Faster)
```bash
pytest tests/e2e/ -v -m e2e -n auto
```
### Generate HTML Report
```bash
pytest tests/e2e/ -v -m e2e --html=e2e_report.html --self-contained-html
open e2e_report.html
```
## Test Scenarios
| # | Scenario | Description | Duration |
|---|----------|-------------|----------|
| 1 | Governance | Agent maturity-based routing | ~5s |
| 2 | Streaming | Multi-provider LLM streaming | ~30s* |
| 3 | Canvas | Canvas presentations & forms | ~5s |
| 4 | Guidance | Real-time agent guidance | ~5s |
| 5 | Browser | Browser automation | ~10s* |
| 6 | Episodes | Episodic memory & retrieval | ~5s |
| 7 | Graduation | Agent graduation framework | ~5s |
| 8 | Training | Student agent training | ~5s |
| 9 | Device | Device capabilities & permissions | ~5s |
| 10 | Deeplinks/Feedback | Deep linking & feedback | ~5s |
*Requires real API keys or Playwright installation
## Expected Results
All tests should pass with output similar to:
```
tests/e2e/test_scenario_01_governance.py::test_agent_governance_maturity_routing PASSED
tests/e2e/test_scenario_02_streaming.py::test_multi_provider_llm_streaming PASSED
tests/e2e/test_scenario_03_canvas.py::test_canvas_presentations_with_governance PASSED
tests/e2e/test_scenario_04_guidance.py::test_real_time_agent_guidance PASSED
tests/e2e/test_scenario_05_browser.py::test_browser_automation_with_playwright PASSED
tests/e2e/test_scenario_06_episodes.py::test_episodic_memory_and_retrieval PASSED
tests/e2e/test_scenario_07_graduation.py::test_agent_graduation_framework PASSED
tests/e2e/test_scenario_08_training.py::test_student_agent_training_system PASSED
tests/e2e/test_scenario_09_device.py::test_device_capabilities_and_permissions PASSED
tests/e2e/test_scenario_10_deeplinks_feedback.py::test_deeplinking_and_enhanced_feedback PASSED
=== 10 passed in 45.23s ===
```
## Troubleshooting
### "No module named 'pytest'"
```bash
pip install pytest pytest-asyncio
```
### "Playwright not installed"
```bash
playwright install chromium
```
### "API key required"
Either provide real API keys or skip tests that require them:
```bash
pytest tests/e2e/ -v -m e2e -m "not requires_api_keys"
```
### Tests timeout
Increase timeout or run individually:
```bash
pytest tests/e2e/test_scenario_02_streaming.py -v -s --timeout=120
```
## Next Steps
1. **Review Results**: Check the HTML report for detailed results
2. **Check Coverage**: Open `htmlcov/index.html` to see coverage report
3. **Debug Failures**: Use `-v -s` flags for verbose output
4. **Extend Tests**: Add new scenarios following the existing pattern
## Additional Resources
- [README.md](./README.md) - Comprehensive E2E testing documentation
- [CONTRIBUTING.md](../../CONTRIBUTING.md) - Contribution guidelines
- [CLAUDE.md](../../CLAUDE.md) - Project architecture and context