OpenClaw · Playwright · JUnit · リモート Mac · 2026

実戦:JUnit・trace 索引・stderr 断片を一枚の PR ゲート要約へ畳み、ゲートウェイから返す

2026.05.06 フロント E2E 運用 約 8 分

概要:リモート Mac のPlaywrightJUnittrace 索引stderr 断片を束ねOpenClawから単一 PR 要約へ載せる HowTo です。関連:シャード集約トークン要約静的検査ゲート

00 痛みと境界

一つ失敗行が散り読みづらい。二つ trace URL 列挙で本文肥大。三つマージ前断片で重複コメント。境界はマージ済みのみ、長バイトは倉庫の固定 URL に残します。レビュアは CI 全文ではなく PR 上の一枚を読む運用に寄せます。

01 対照:渡すもの/渡さないもの

区分 ゲートウェイ入力 倉庫成果物のみ
JUnit merged の件数・失敗ケース名一覧 shard ごとの生 XML
trace 索引の先頭キーと件数 zip 本体とストレージパス
stderr 末尾断片と行上限 フルコンソールログ

02 レポートパス約束

ルートartifacts/e2e/${RUN_ID}/、片shard-${INDEX}/results.xml、マージmerged/junit.xml、索引merged/trace-index.json、断片merged/stderr-tails.json。RUN_ID は PR 番号と短 SHA。キーはtestCaseId優先、無ければファイル名。

03 閾値戦略

判定はmerged/junit.xmlの失敗数のみ。flake 再試行は F 件に対しR = min(3, max(1, ceil(0.12×F)))で片上限と全体蓋。stderr は末尾 2KB・8 行、trace 索引は本文三キーまで。

04 ゲートウェイ側テンプレ

ペイロードは JSON 一塊、テンプレは表・trace 先頭・stderr フェンスを固定見出しで並べ、本文は四千字以内。PR コメントは ID で upsert。機微はマスク、索引は相対パスのみ。モデルへ渡す直前にキー順を安定ソートし差分ノイズを減らします。

05 失敗時の再試行

欠損シャードのみ再実行して再マージ。ゲートウェイは指数バックオフで最大三回再送、ダメなら赤で終了。索引が未完なら同じく再試行対象。

06 再現手順(HowTo)

  1. 隔離:RUN_ID 配下へ片ごと JUnit と trace zip。
  2. マージ:単一ジョブでmerged/junit.xml
  3. 索引:trace map と stderr 末尾切り出し。
  4. 閾値:flake と本文長を強制。
  5. 投稿:テンプレを OpenClaw へ、PR は upsert。

可引用:RUN_ID 一意・stderr 2KB・trace 三キー・再送三回・本文四千字。

07 可実行スクリプト思路

# マージ→索引→断片→ゲートウェイ POST の骨子 ROOT="artifacts/e2e/${RUN_ID:?}/merged" node scripts/merge-junit.mjs ../shard-*/results.xml > junit.xml node scripts/build-trace-index.mjs .. > trace-index.json node scripts/collect-stderr-tails.mjs .. --max-chars=2048 --max-lines=8 > stderr-tails.json node scripts/render-openclaw-payload.mjs --root .. | curl -sS -X POST "$OPENCLAW_GATEWAY_URL" -H "content-type: application/json" -d @-

XML と JSON は Node、bash は呼び出しだけにするとテストが楽です。

ログイン不要

まとめ:単一 PR 要約を毎回同じ形で出したいチームへ

実機 E2E は成果物が増えるのでパスと閾値とテンプレを固定し、読むのは一枚に揃えます。macwww.com でノードと接続を選べます。トップブログヘルプ料金購入

E2E 向けリモート Mac を選ぶ