Skip to content
frontmatter
キー値
specdojo.idprj-0001:pjr-1dkd-integration-test-depends-on-generated-templates
specdojo.typeproject
specdojo.statusready
specdojo.rulebookspecdojo:pjr-rulebook
specdojo.part_ofprj-0001:pjr-index
specdojo.item_typeissue
specdojo.item_statusdone
specdojo.prioritymedium
specdojo.ownerDEV
specdojo.registered_at2026-10-11T09:18:58Z
specdojo.completed_at2026-10-14T14:01:03Z
specdojo.conclusionfixture が登録簿の生成物を自分で作って commit し、実リポジトリからのテンプレートのコピーでは generated/ を除くようにして、生成物のない checkout でも並列実行の 2 件が通るようにした

PJR-1DKD 統合テストが生成済みテンプレートの有無に依存する ​

1. 課題内容 ​

exec-register-pipeline-e2e の並列実行の 2 件が、実リポジトリの作業ツリーにある git 管理外の生成済みテンプレートをコピーする前提で書かれており、生成物のない新しい checkout では必ず失敗する

2. 影響範囲 ​

観点影響
スコープtests/src/exec-register-pipeline-e2e.integration.test.ts の並列実行の 2 件
スケジュール影響なし
コスト新しい checkout での失敗の切り分けの手間
品質npm test の結果が作業ツリーの状態で変わり、CI や新しい worktree で誤って失敗する
関係者テストを流す開発者、exec の親の検証

3. 対応方針 ​

項目内容
原因fixture が実リポジトリの docs/ja/specdojo/templates を丸ごとコピーし、その中の git 管理外の generated/ を管理済みの生成物として扱う。テストは config init 後に git ls-files -ci --exclude-standard が 1 件以上あることを前提にするが、生成物のない checkout では 0 件になり失敗する。
対応策fixture 自身で登録簿の生成物を作って commit してから config init を実行する形にし、実リポジトリの作業ツリーの状態に依存しないようにする。
依存事項なし
完了条件生成物のない新しい checkout(specdojo build 前)で当該 2 件が通る。既存の環境でも通る。

4. 対応結果 ​

  • fixture 内で generated/pjr-index.md を作成し、初回 commit の時点で追跡済みにすることで、config init による生成物の追跡解除を fixture だけで再現できるようにした。
  • 実リポジトリからテンプレートをコピーする際は generated/ を除外し、作業ツリーに無視済み生成物が存在しても利用しないようにした。
  • 対象の並列実行 2 件では、fixture が作成した登録簿生成物が git ls-files -ci --exclude-standard の結果に含まれることを明示的に検証するようにした。

5. 関連ドキュメント ​

  • prj-0002 の PJR-G4QN(project/prj-0002/develop 上): 事象が見つかった実行(prj-0002 の worktree での親の検証)。