Repository navigation
E2E Harness Operations Guide
This document defines deterministic execution and cleanup for the tiered E2E harness.
All flow scenarios follow:
provisionexecutepollverify-
cleanup(always runs infinally)
Implementation lives under tests/e2e/flows/, tests/e2e/provisioners/, and tests/e2e/verifiers/.
- Fast required:
python -m pytest -q -m "tier_fast and not quarantined" --maxfail=1 --no-cov - Heavy optional:
python -m pytest -q -m "tier_heavy and not tier_external" --maxfail=1 --durations=25 - External nightly/release:
python -m pytest -q -m "tier_external and cleanup_required" --maxfail=1 --durations=50
Common:
-
TESTO_E2E_RUN_ID(optional; auto-generated if not set) -
TESTO_E2E_KEEP_ON_FAIL(defaultfalse) -
TESTO_E2E_MAX_CLEANUP_ATTEMPTS(default3) -
TESTO_E2E_EXTERNAL_DRY_RUN(trueby default; setfalsein external CI gates)
GitHub external:
TESTO_E2E_GITHUB_TOKENTESTO_E2E_GITHUB_OWNER
GitLab external:
TESTO_E2E_GITLAB_TOKENTESTO_E2E_GITLAB_GROUP_ID-
TESTO_E2E_GITLAB_BASE_URL(optional, defaults tohttps://gitlab.com/api/v4)
The scheduled nightly-external.yml job also needs the repository variable (not secret) TESTO_E2E_ENABLED=true. Without it the run shows as skipped, so a green nightly always means the suite ran. The nightly schedule is paused for now (the workflow runs only when started by hand from the Actions tab); uncomment the schedule: lines in the workflow to bring it back.
- Ephemeral resources are named using
testo-e2e-<run-id>-<provider>-<scenario>. - Artifacts are written under
.artifacts/e2e/<run-id>/. - External CI jobs use
external-e2econcurrency/resource locking.
- Every scenario writes cleanup records through
cleanup_ledger. - Session finalizer emits
.artifacts/e2e/<run-id>/cleanup-ledger.json. - External gates fail if cleanup audit detects any
cleanup_failedrecord.
On failed heavy/external runs, upload:
- logs (
*.log) - summary JSON (
*summary*.json) - API responses (
*api*.json) - screenshots (
*.png, if UI scenarios are enabled)
- Provider tokens must be injected via masked CI secrets/variables only.
- Do not print or serialize tokens into logs/artifacts.
- Keep provider API logic inside
tests/e2e/provisioners/adapters.
Context & Links:
Generated from docs/Processes & Guides/E2E Harness Operations Guide.md. Edit it there; changes made in the wiki are overwritten.
Architecture
CLI Commands
Processes & Guides
- CI-CD Pipeline Setup
- E2E Harness Operations Guide
- GitLab Pages Demo
- Publishing Docker Images
- Publishing to Artifactory
- Publishing to PyPI
- Setup Snippets
- Shared Resource Pools
- Team Server
Prompts & Snippets
Roadmap & Strategy
- Feature Gaps and Quick Wins - 2026-10-31
- New User Journey Audit - 2026-11-01
- Paid Features to Offer Free - 2026-10-31
- Product Roadmap
Specs & ADRs
- Affected Test Selection - 2026-10-30
- Alerts Where Developers Look - 2026-10-22
- Architecture Consolidation - 2026-10-06
- Architecture Review - 2026-10-31
- BehaveX Reports - 2026-10-21
- Better Flaky Signal - 2026-11-01
- Command Adapter and JUnit Import - 2026-09-25
- Config JSON Schema - 2026-10-22
- Crash Detection - 2026-10-31
- Delta Comparison Policy
- Docs Site - 2026-10-19
- Docs Vault and Wiki Sync - 2026-10-07
- Easy Setup - 2026-11-01
- Engine Fixes - 2026-11-01
- Engineering Health Review - 2026-10-31
- Exporting Results - 2026-11-01
- Flaky Test Issues - 2026-11-01
- Flaky Test Quarantine - 2026-10-22
- Free Copies of Paid Features - 2026-11-01
- GitHub Action PR Comment - 2026-10-19
- Human-Run Resource Provider - 2026-10-30
- Importer and Integration Bug Hunt - 2026-10-31
- Ingest and Team Server - 2026-10-22
- Interview Readiness Fixes - 2026-10-07
- Library Packaging
- Lifecycle Fixes - 2026-11-02
- MCP Server - 2026-11-01
- New User Journey Automation - 2026-11-01
- Open Source Features - 2026-10-19
- OpenTelemetry Export - 2026-10-30
- Phase 3 Delta Comparison Engine Plan
- Phase 3 Unified Dashboard Plan
- Phase 4 BYOK and Failure Analysis
- Phase 5 UI Redesign - Cycles-First Navigation
- Playwright Adapter - 2026-10-19
- Playwright JSON Import - 2026-10-22
- Plugin API - 2026-10-19
- Product Roadmap Work - 2026-10-25
- Product to Ten - 2026-10-25
- Project Health - 2026-10-26
- QASight Logo - 2026-11-05
- Qualflare Follow-ups - 2026-10-26
- Quarantine From the UI - 2026-11-01
- Specs & ADRs
- Rename to QASight - 2026-11-04
- Repository Pattern - Database-Agnostic Refactor
- Resource Lifecycle Hooks - 2026-10-26
- Resource Pools and Leases - 2026-10-26
- Run Deletion and Stop - 2026-11-02
- Runner Coverage - 2026-10-26
- Scale Runs and Stages - 2026-10-24
- Security and Install Review - 2026-10-31
- Switchable Team Features - 2026-10-24
- Test Delivery Metrics - 2026-11-02
- Test Labels, Environments and Releases - 2026-11-02
- Test Source in AI Summaries - 2026-11-01
- Throwaway Stage Containers - 2026-10-24
- Tidy Cards and Demo Examples - 2026-11-05
- UI Design Review - 2026-10-31
- UI Polish - 2026-11-08
- UI Restyle - 2026-10-19
- UI Review Fixes - 2026-11-01
Testing Workflows
Vault