Agent Skills
› liaohch3/claude-tap
› real-e2e-test
real-e2e-test
GitHub用于运行针对 Claude CLI 的真实端到端测试,支持 pytest 和 tmux 两种模式。通过启动本地 claude-tap 代理连接真实 CLI,验证 trace 输出、工具调用及 API 交互,确保功能正确性。
Trigger Scenarios
需要验证 Claude CLI 真实交互行为
执行端到端集成测试
检查 trace 日志或 HTML 报告生成
Install
npx skills add liaohch3/claude-tap --skill real-e2e-test -g -y
SKILL.md
Frontmatter
{
"name": "real-e2e-test",
"tags": "testing, e2e, integration, tmux",
"description": "Run real E2E tests against Claude CLI in pytest and tmux modes"
}
Real E2E Test Skill
Run real end-to-end tests that start claude-tap from local source, connect to the
real Claude CLI, and verify trace output.
Prerequisites
claudeCLI installed and authenticated- Python dev dependencies installed:
uv sync --extra dev tmuxinstalled for interactive mode (brew install tmux)
Mode 1: Pytest Real E2E (7 test cases)
Run all real E2E tests
uv run pytest tests/e2e/ --run-real-e2e --timeout=300 -v
Run a single test
uv run pytest tests/e2e/test_real_proxy.py::TestRealProxy::test_single_turn --run-real-e2e --timeout=180 -v -s
Run with debug output
uv run pytest tests/e2e/ --run-real-e2e --timeout=300 -v -s --tb=long
Mode 2: tmux Interactive Real E2E
Use this when you need to validate non--p interactive behavior in Claude Code TUI.
scripts/run_real_e2e_tmux.sh
Optional overrides:
PROMPT_ONE="Use the shell tool to run command ls in the current directory, then reply with any 5 filenames only." \
PROMPT_TWO="Thank you." \
SUBMIT_KEY="Enter" \
PERMISSION_MODE="bypassPermissions" \
scripts/run_real_e2e_tmux.sh
Important tmux interaction notes:
- Submit key is
Enterfor Claude Code TUI in tmux (confirmed working). PROMPT_ONEshould intentionally trigger tool use.- For portability, use
grep -Finstead ofrgin shell assertions (rgmay be unavailable).
Verification Checklist (for both modes)
- Latest trace
.jsonlcontains both prompts (PROMPT_ONE,PROMPT_TWO) - At least 2 requests hit
/v1/messages - At least one response content block has
"type": "tool_use" - HTML viewer file is generated (
trace_*.html)
Notes
- Real E2E tests are skipped by default;
--run-real-e2eis required. - Each pytest case starts a fresh proxy server and trace directory.
- Timeouts are intentionally generous because real API calls are involved.
- tmux mode includes retry logic for prompt submission and post-run JSONL assertions.
Pytest Test Cases
| Test | Timeout | What It Tests |
|---|---|---|
test_single_turn |
180s | Basic prompt/response trace capture |
test_multi_turn |
300s | Conversation memory with -c flag |
test_tool_use |
180s | Tool use generates multiple trace records |
test_html_viewer_generated |
180s | HTML viewer generated with embedded trace data |
test_api_key_redaction |
180s | API keys redacted from trace output |
test_streaming_sse_capture |
180s | SSE events captured in streaming mode |
test_trace_summary |
180s | CLI stdout includes trace summary and API call count |
Version History
- 7170ab3 Current 2026-07-05 15:20


