Spaces:
Sleeping
Sleeping
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
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
# 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
cd /Users/rushiparikh/projects/atom/backend
PYTHONPATH=/Users/rushiparikh/projects/atom/backend pytest tests/e2e/ -v -m e2e
Run Individual Scenario
# 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
pytest tests/e2e/ -v -m e2e --cov=core --cov-report=html
open htmlcov/index.html
Run in Parallel (Faster)
pytest tests/e2e/ -v -m e2e -n auto
Generate HTML Report
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'"
pip install pytest pytest-asyncio
"Playwright not installed"
playwright install chromium
"API key required"
Either provide real API keys or skip tests that require them:
pytest tests/e2e/ -v -m e2e -m "not requires_api_keys"
Tests timeout
Increase timeout or run individually:
pytest tests/e2e/test_scenario_02_streaming.py -v -s --timeout=120
Next Steps
- Review Results: Check the HTML report for detailed results
- Check Coverage: Open
htmlcov/index.htmlto see coverage report - Debug Failures: Use
-v -sflags for verbose output - Extend Tests: Add new scenarios following the existing pattern
Additional Resources
- README.md - Comprehensive E2E testing documentation
- CONTRIBUTING.md - Contribution guidelines
- CLAUDE.md - Project architecture and context