# Conflicts: # .yoi/tickets/00001KV0TJVN5/item.md # .yoi/tickets/00001KV0TJVN5/thread.md
35 lines
2.1 KiB
Markdown
35 lines
2.1 KiB
Markdown
---
|
|
title: 'E2E harness が最新 yoi binary を自動 build して使うようにする'
|
|
state: 'closed'
|
|
created_at: '2026-06-13T15:46:07Z'
|
|
updated_at: '2026-06-13T16:53:48Z'
|
|
assignee: null
|
|
readiness: 'ready'
|
|
queued_by: 'yoi ticket'
|
|
queued_at: '2026-06-13T15:46:29Z'
|
|
---
|
|
|
|
## 背景
|
|
|
|
`00001KSKBP9YG` の E2E harness first slice では `YOI_E2E_BIN` または推測された `target/debug/yoi` を process-under-test として使っていた。これだと任意タイミングの `cargo test -p yoi-e2e --features e2e ...` 実行時に、最新 source から build された `yoi` binary が使われる保証がない。
|
|
|
|
ユーザー判断:
|
|
- `cargo run` を process-under-test にするより、E2E harness が test setup で `cargo build -p yoi --features e2e-test --bin yoi` を実行し、生成された binary を直接 PTY spawn する方針で修正する。
|
|
|
|
## 要件
|
|
|
|
- `YOI_E2E_BIN` が明示されていない通常 E2E 実行では、harness が workspace root で `cargo build -p yoi --features e2e-test --bin yoi` を実行してから、生成された binary path を使う。
|
|
- `cargo run` を PTY の process-under-test にしない。PTY / Ctrl+C / Quit latency 測定対象は `yoi` binary 本体にする。
|
|
- `YOI_E2E_BIN` は明示 override として残してよい。
|
|
- 複数 test で build が重複しすぎないよう、可能なら `OnceLock` 等で同一 test process 内 1 回に寄せる。
|
|
- artifact / error message に binary provider / build command / binary path が分かる情報を残す。
|
|
- 既存の production/non-production boundary、`e2e-test` feature gating、mouse capture tracking、quit pending barrier を壊さない。
|
|
|
|
## 受け入れ条件
|
|
|
|
- `cargo test -p yoi-e2e --features e2e --test panel -- --nocapture` だけで、事前の手動 `cargo build -p yoi --features e2e-test` なしに E2E が実行できる。
|
|
- E2E 実行時に build された `target/debug/yoi` が PTY に直接 spawn される。
|
|
- `YOI_E2E_BIN=<path>` 指定時は override としてその path が使われる。
|
|
- 既存 Panel E2E 2 本が pass する。
|
|
- `cargo fmt --check`、`git diff --check`、関連 package check が pass する。
|