一键导入
e2e-test
Run end-to-end smoke tests against the boiled-claw gateway from the Docker dev container.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Run end-to-end smoke tests against the boiled-claw gateway from the Docker dev container.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
boiled-claw の e2e スモークテストを実行する。gateway の pytest / Docker / HTTP ヘルスチェックをまとめて確認し、すべて Pass した場合のみ「push OK」と報告する。
見えているブラウザ UI を browser-first で扱い、単発は computer_*、長めの作業は computer_operator へつなぐ。
Use browser-first computer tools for visible UI tasks in the current browser, with escalation to computer_operator for longer multi-step work.
boiled-claw の新しいスキルを対話的に作成する。skills/ と .claude/skills/ の両方に SKILL.md を生成する。
git diff を外部 AI CLI(Claude Code / Codex / Gemini)に送ってレビューし、結果を集約・比較する。
Detect lint/test failures, send context to external AI CLIs for fixes, apply patches, and verify in a loop.
基于 SOC 职业分类
| name | e2e-test |
| description | Run end-to-end smoke tests against the boiled-claw gateway from the Docker dev container. |
| version | 1.1.0 |
| author | boiled-claw |
| tags | ["testing","e2e","docker","pytest"] |
Run the automated e2e suite from the Docker dev container. Do not rely on a host .venv.
.env exists and GOOGLE_API_KEY is setdocker compose up -d --build boiled-claw-gatewaydocker compose --profile dev run --rm boiled-claw-dev pytest tests/test_e2e.py -v -m e2e
boiled-claw-dev injects GATEWAY_URL=http://boiled-claw-gateway:18789, so the test container talks to the gateway over the Compose network.
If you need a fast readiness check before the full suite:
docker compose --profile dev run --rm boiled-claw-dev curl -sS http://boiled-claw-gateway:18789/health
Expected: JSON with "status": "ok".
These checks run inside the Docker dev container and do not require external AI CLIs (claude/codex/gemini) to be installed.
python3 -c "
import asyncio
from src.skills.runtime import ensure_skills_loaded
from src.skills.base import get_skill_registry
async def main():
await ensure_skills_loaded()
registry = get_skill_registry()
names = [m.name for m in registry.list_skills()]
expected = {'coding-agent', 'e2e-test', 'code-review', 'multi-llm-judge', 'auto-fix', 'computer-use'}
missing = expected - set(names)
if missing:
print(f'FAIL: missing skills: {missing}')
exit(1)
print(f'PASS: {len(names)} skills loaded — {sorted(names)}')
asyncio.run(main())
"
0coding-agent, e2e-test, code-review, multi-llm-judge, auto-fix, computer-useVerify that run_ai_cli.py builds correct argument lists without invoking any CLI:
python3 -c "
import sys, importlib.util
spec = importlib.util.spec_from_file_location('run_ai_cli', 'skills/_utils/run_ai_cli.py')
mod = importlib.util.module_from_spec(spec); spec.loader.exec_module(mod)
# claude: stdin transport, no prompt in argv
args, stdin = mod._build_args_and_input('claude', 'test prompt', 'default', [], None, False)
assert args == ['claude', '-p'], f'claude args: {args}'
assert stdin == 'test prompt', f'claude stdin: {stdin}'
# codex exec: stdin via '-'
args, stdin = mod._build_args_and_input('codex', 'test prompt', 'default', [], None, False)
assert args == ['codex', 'exec', '-'], f'codex exec args: {args}'
assert stdin == 'test prompt', f'codex exec stdin: {stdin}'
# codex review --base: no prompt in argv (mutually exclusive)
args, stdin = mod._build_args_and_input('codex', 'ignored', 'review', [], 'main', False)
assert args == ['codex', 'review', '--base', 'main'], f'codex review args: {args}'
assert stdin is None, f'codex review stdin should be None: {stdin}'
# codex review --uncommitted: no prompt in argv
args, stdin = mod._build_args_and_input('codex', '', 'review', [], None, True)
assert args == ['codex', 'review', '--uncommitted'], f'codex uncommitted args: {args}'
assert stdin is None
# gemini: stdin transport
args, stdin = mod._build_args_and_input('gemini', 'test prompt', 'default', [], None, False)
assert args == ['gemini'], f'gemini args: {args}'
assert stdin == 'test prompt'
print('PASS: all argv construction checks passed')
"
0These tests validate recently added tool modules. They run inside the Docker
dev container or on the host .venv — no running gateway needed.
pytest tests/test_computer_tools.py -v
If tests/test_computer_evals.py exists:
pytest tests/test_computer_evals.py -v
pytest tests/test_physical_ai_tools.py -v
pytest tests/test_self_improvement_tools.py -v
pytest tests/test_agent.py -v
computer_observe, computer_evaluate, computer_click, computer_fill,
computer_trajectory_recentphysical_ai_submit_simulation, physical_ai_build_ros2_action,
physical_ai_dispatch_ros2_actionself_improvement_prepare_canary, self_improvement_run_benchmarks,
self_improvement_package_candidate, self_improvement_cleanup_canarypytest -q -m 'not e2e'
0pytest exits with code 0/health returns HTTP 200ensure_skills_loaded()