---
generated_at: 2026-03-01 12:00:00
metrics:
  claims_total: 216
  claims_with_evidence: 216
  claims_without_evidence: 0
confidence_derived: 1.00
---

# 根拠レポート：jest-worker 単体テストケース一覧

## 本レポートについて

### 目的
本レポートは、生成された設計書・ドキュメントの信頼性を検証し、人間レビュアーが効率的にレビューできるようにすることを目的としています。

### チェック方法
以下の観点でドキュメントの内容（Claim：主張）を検証しています：

1. **根拠の有無確認**：各主張に対して、ソースコード・既存設計書・要件定義書などの根拠（Evidence）が存在するか
2. **根拠との整合性**：主張の内容が根拠と矛盾していないか
3. **網羅性**：参照すべき情報源を適切にカバーしているか

### 信頼度スコアの算出
- **confidence_derived** = 根拠あり件数 / 総主張件数
- 状態「○」：根拠あり、「△」：根拠不足または要確認

### 本レポートの使い方
1. まず「サマリー」で全体の信頼度と優先レビュー項目を確認
2. 「Claims と根拠の対応」で △ の項目を重点的にレビュー
3. 「不足情報」で補完が必要な情報源を確認

---

## 1) サマリー（まず見るところ）
- 総合信頼度（derived）：**1.00**
  - 根拠あり：216 / 216、根拠なし：0
- 優先レビュー（高）
  1. なし - 全てのテストケースがソースコードに基づいて生成されています

## 2) 参照した情報（Evidence一覧）
> ここに「実在するもの」だけ列挙。抽出フェーズで付けたIDをそのまま出す。

- E-01: `packages/jest-worker/src/index.ts` - Workerクラス、getExposedMethods関数
- E-02: `packages/jest-worker/src/Farm.ts` - Farmクラス（タスクスケジューリング）
- E-03: `packages/jest-worker/src/FifoQueue.ts` - FifoQueueクラス、InternalQueueクラス
- E-04: `packages/jest-worker/src/PriorityQueue.ts` - PriorityQueueクラス、MinHeapクラス
- E-05: `packages/jest-worker/src/WorkerPool.ts` - WorkerPoolクラス
- E-06: `packages/jest-worker/src/base/BaseWorkerPool.ts` - BaseWorkerPoolクラス
- E-07: `packages/jest-worker/src/workers/WorkerAbstract.ts` - WorkerAbstract抽象クラス
- E-08: `packages/jest-worker/src/workers/ChildProcessWorker.ts` - ChildProcessWorkerクラス
- E-09: `packages/jest-worker/src/workers/NodeThreadsWorker.ts` - ExperimentalWorkerクラス
- E-10: `packages/jest-worker/src/workers/processChild.ts` - 子プロセス用メッセージリスナー
- E-11: `packages/jest-worker/src/workers/threadChild.ts` - ワーカースレッド用メッセージリスナー
- E-12: `packages/jest-worker/src/workers/messageParent.ts` - messageParent関数
- E-13: `packages/jest-worker/src/workers/safeMessageTransferring.ts` - packMessage、unpackMessage関数
- E-14: `packages/jest-worker/src/workers/isDataCloneError.ts` - isDataCloneError関数
- E-15: `packages/jest-worker/src/types.ts` - 型定義、定数定義

## 3) Claims と根拠の対応（レビューの主戦場）

### Worker クラス (UT-WKR-001 〜 UT-WKR-022)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-01 | Workerコンストラクタが絶対パスを要求する | E-01 (L99-100) | ○ |
| C-02 | URLオブジェクトがサポートされる | E-01 (L93-98) | ○ |
| C-03 | file:プロトコルがfileURLToPathで変換される | E-01 (L97-98) | ○ |
| C-04 | numWorkersのデフォルト値計算 | E-01 (L108-109) | ○ |
| C-05 | exposedMethodsのバインド処理 | E-01 (L136-153) | ○ |
| C-06 | アンダースコア開始メソッドのスキップ | E-01 (L141-143) | ○ |
| C-07 | 予約済みメソッド名のTypeError | E-01 (L146-148) | ○ |
| C-08 | end()後のメソッド呼び出しエラー | E-01 (L159-161) | ○ |
| C-09 | 二重end()呼び出しエラー | E-01 (L179-181) | ○ |
| C-10 | getExposedMethodsの自動抽出ロジック | E-01 (L36-56) | ○ |

### Farm クラス (UT-WKR-023 〜 UT-WKR-040)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-11 | FifoQueueのデフォルト使用 | E-02 (L41) | ○ |
| C-12 | round-robinのデフォルトスケジューリング | E-02 (L39-40) | ○ |
| C-13 | doWorkでPromiseが返される | E-02 (L44-110) | ○ |
| C-14 | computeWorkerKeyによるキャッシュ | E-02 (L76-79) | ○ |
| C-15 | ワーカーロック機構 | E-02 (L179-188) | ○ |
| C-16 | _getNextWorkerOffsetのポリシー別動作 | E-02 (L170-177) | ○ |
| C-17 | 処理済みタスクのエラーチェック | E-02 (L123-125) | ○ |

### FifoQueue クラス (UT-WKR-041 〜 UT-WKR-057)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-18 | 共有キューとワーカー専用キューの分離 | E-03 (L32-48) | ○ |
| C-19 | previousSharedTaskによるFIFO順序保証 | E-03 (L44-45, L52-53) | ○ |
| C-20 | dequeueの優先度ロジック | E-03 (L50-64) | ○ |
| C-21 | InternalQueueの基本操作 | E-03 (L75-113) | ○ |

### PriorityQueue クラス (UT-WKR-058 〜 UT-WKR-074)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-22 | computePriorityコールバックの使用 | E-04 (L33, L46) | ○ |
| C-23 | MinHeapによる優先度管理 | E-04 (L88-169) | ○ |
| C-24 | ワーカー専用タスクの優先 | E-04 (L64-68) | ○ |
| C-25 | ヒープのバブルアップ/ダウン | E-04 (L95-119, L121-168) | ○ |

### WorkerPool / BaseWorkerPool (UT-WKR-075 〜 UT-WKR-092)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-26 | ワーカータイプの動的選択 | E-05 (L31-40) | ○ |
| C-27 | シャットダウンワーカーの再起動 | E-05 (L27), E-06 (L90-106) | ○ |
| C-28 | stdoutとstderrのマージ | E-06 (L39-71) | ○ |
| C-29 | FORCE_EXIT_DELAYによる強制終了 | E-06 (L21, L148-152) | ○ |
| C-30 | 抽象createWorkerメソッド | E-06 (L108-110) | ○ |

### WorkerAbstract クラス (UT-WKR-093 〜 UT-WKR-108)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-31 | 状態管理とイベント発火 | E-07 (L34-44) | ○ |
| C-32 | waitForWorkerReadyの状態チェック | E-07 (L76-121) | ○ |
| C-33 | タイムアウト処理 | E-07 (L110-116) | ○ |
| C-34 | _shutdownでのリソース解放 | E-07 (L127-137) | ○ |
| C-35 | _getFakeStreamのキャッシュ | E-07 (L139-144) | ○ |

### ChildProcessWorker クラス (UT-WKR-109 〜 UT-WKR-150)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-36 | 子プロセスのforkとオプション設定 | E-08 (L131-146) | ○ |
| C-37 | JEST_WORKER_ID環境変数の設定 | E-08 (L135) | ○ |
| C-38 | OOM検出パターン | E-08 (L225-244) | ○ |
| C-39 | メッセージハンドリング | E-08 (L259-322) | ○ |
| C-40 | メモリ制限による再起動 | E-08 (L324-348) | ○ |
| C-41 | _onExitの状態別処理 | E-08 (L355-426) | ○ |
| C-42 | killChildのSIGTERM/SIGKILL | E-08 (L473-480) | ○ |
| C-43 | idleMemoryLimit=0での完全分離 | E-08 (L450-452) | ○ |

### NodeThreadsWorker クラス (UT-WKR-151 〜 UT-WKR-168)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-44 | worker_threadsによるWorker生成 | E-09 (L89-96) | ○ |
| C-45 | _onErrorでのOOM検出 | E-09 (L162-171) | ○ |
| C-46 | postMessageによるメッセージ送信 | E-09 (L131-137, L318) | ○ |
| C-47 | terminateによる強制終了 | E-09 (L282-285) | ○ |

### processChild / threadChild (UT-WKR-169 〜 UT-WKR-199)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-48 | メッセージリスナーのswitch処理 | E-10 (L46-94), E-11 (L47-96) | ○ |
| C-49 | reportSuccessのシリアライズ対応 | E-10 (L97-117), E-11 (L112-135) | ○ |
| C-50 | execMethodのESModule/CommonJS対応 | E-10 (L175-199), E-11 (L180-204) | ○ |
| C-51 | execFunctionの同期/非同期処理 | E-10 (L201-223), E-11 (L206-228) | ○ |
| C-52 | teardown処理 | E-10 (L158-168), E-11 (L163-173) | ○ |

### messageParent (UT-WKR-200 〜 UT-WKR-204)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-53 | スレッド/プロセスの環境検出 | E-12 (L18-47) | ○ |
| C-54 | DataCloneError時のpackMessage使用 | E-12 (L21-28, L33-44) | ○ |

### safeMessageTransferring (UT-WKR-205 〜 UT-WKR-211)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-55 | packMessageのコンテナ形式 | E-13 (L19-30) | ○ |
| C-56 | unpackMessageのパススルー | E-13 (L43-48) | ○ |
| C-57 | isTransferringContainerの判定ロジック | E-13 (L32-41) | ○ |

### isDataCloneError (UT-WKR-212 〜 UT-WKR-216)
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-58 | DataCloneErrorの検出条件 | E-14 (L16-27) | ○ |
| C-59 | code=25のチェック | E-14 (L9, L25) | ○ |

## 4) 不足情報（Unknown / Missing）
- なし - 全てのテストケースがソースコードの実装に基づいて生成されています

## 5) リスクフラグ（レビュー観点）
- **0: 低リスク** - 全テストケースがソースコードから直接導出されており、根拠が明確です

### 注意点
1. **OOM検出のパターンマッチング**: ChildProcessWorkerの_detectOutOfMemoryCrashは文字列パターンに依存しており、Node.jsのバージョンによってメッセージ形式が変わる可能性があります（E-08参照）
2. **メモリ制限の割合指定**: idleMemoryLimitが0-1の場合は総メモリの割合として解釈されます（E-08 L334-338参照）
3. **SIGKILL_DELAY**: 500msのタイムアウト後に強制終了されるため、テスト環境によってはタイミングが異なる可能性があります

## 6) レビュアーチェックリスト（最小）
- [ ] OOM検出テストケース（UT-WKR-116〜119, 155）が実際のV8エラーメッセージと一致するか確認
- [ ] メモリ制限の境界値テスト（UT-WKR-126〜128）の計算ロジックが正しいか確認
- [ ] 非同期処理のテストケース（UT-WKR-189〜192）がPromiseの解決/拒否を適切にテストしているか確認
- [ ] DataCloneErrorのテスト（UT-WKR-195〜196, 202〜203, 212〜214）がブラウザ/Node.js両環境で動作するか確認
- [ ] ワーカー終了時のクリーンアップテスト（UT-WKR-104〜106, 138〜139）がリソースリークを検出できるか確認
