بنقرة واحدة
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 ويثبّتها لك.
استنادا إلى تصنيف SOC المهني
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.
| 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()