E2E Testing
Set up comprehensive end-to-end testing infrastructure for Assistant Skills plugins. Auto-generates test cases from your plugin structure and skills.
Quick Start
# Initialize E2E testing infrastructure
python skills/e2e-testing/scripts/setup_e2e.py /path/to/project
# Auto-generate test cases from plugin structure
python skills/e2e-testing/scripts/generate_test_cases.py /path/to/project
# Run tests
./scripts/run-e2e-tests.sh
# Update project documentation
python skills/e2e-testing/scripts/update_docs.py /path/to/project
Scripts Reference
| Script |
Purpose |
setup_e2e.py |
Initialize E2E testing infrastructure |
generate_test_cases.py |
Auto-generate test cases from plugin |
run_tests.py |
Execute tests with multiple output formats |
update_docs.py |
Update project documentation |
Authentication
| Method |
Location |
Setup |
| OAuth |
~/.claude.json |
claude auth login |
| API Key |
Environment |
export ANTHROPIC_API_KEY="sk-ant-..." |
Local runs (--local) prefer OAuth credentials over API keys.
Configuration
| Variable |
Default |
Description |
E2E_TEST_TIMEOUT |
120 |
Timeout per test (seconds) |
E2E_TEST_MODEL |
claude-sonnet-4-20250514 |
Claude model |
E2E_MAX_TURNS |
5 |
Max conversation turns |
Output Formats
| Format |
Flag |
Description |
| Console |
(default) |
Colored terminal output |
| JSON |
--output results.json |
Machine-readable results |
| JUnit |
--junit results.xml |
CI/CD integration |
| HTML |
--html report.html |
Visual report |
Cost Estimates
| Model |
Cost per Test |
20 Tests |
| Haiku |
~$0.001 |
~$0.02 |
| Sonnet |
~$0.01 |
~$0.20 |
| Opus |
~$0.05 |
~$1.00 |
Customizing Tests
Edit tests/e2e/test_cases.yaml to add custom test cases:
suites:
custom:
tests:
- id: my_test
prompt: "Do something specific"
timeout: 180 # Override default
max_turns: 10 # Override default
expect:
output_contains: ["expected"]
Response Logging
Failed test responses logged to test-results/e2e/responses_latest.log.
More Information
- Detailed guide: See
tests/e2e/README.md
- Prompt patterns: See
docs/test-prompt-best-practices.md
- Troubleshooting: See
docs/troubleshooting.md