Skip to content

test_mvv_ask_appends_one_row がプランの全体テストでだけ落ちる #2020

Open

Description

@takemi-ohama

何が起きたか

スプリント PR #2019 の検査(supervise.py の検査のプラン、戦略 local-full の全体テスト)で、次のテストが落ちた。test-run はこれを既存失敗(preexisting)と判定し、変更起因(caused)は 0 件だった。

  • plugins/ndf/scripts/tests/test_usage_ledger.py::test_mvv_ask_appends_one_row

再現

走らせ方 結果
検査のプランの全体テスト(並列 -n、supervise.py run の子として) 落ちる
単独: uv run --frozen --project . --all-extras pytest "plugins/ndf/scripts/tests/test_usage_ledger.py::test_mvv_ask_appends_one_row" -q 通る(develop 9d907aa)
単独で環境変数を付ける: NDF_USAGE_PLAN=p NDF_USAGE_STEP=s uv run --frozen --project . --all-extras pytest "plugins/ndf/scripts/tests/test_usage_ledger.py::test_mvv_ask_appends_one_row" -q 落ちる

テストは [row] = rows(d) で台帳に 1 行だけあることと、plan・step が空であることを見ている。

原因

走らせる環境の環境変数である。並列・順序には依存しない。

  • 1a2124b(スプリント m1953 #1973)で、supervise.py は claude -p の子へ呼び出し元のプラン・ステップを NDF_USAGE_PLAN / NDF_USAGE_STEP で渡す。検査のプランの全体テストはプランの子として走るため、この 2 つを受け継ぐ
  • テスト(plugins/ndf/scripts/tests/test_usage_ledger.py:287 )は 2 つを消さずに台帳の行を書かせるため、行の plan・step が空にならず、:296 の比較で落ちる
  • 同じ環境変数を付けて usage・ledger・mvv に当たるテスト 278 件を流すと、落ちるのはこの 1 件だけ

直し方

  • テストの頭で monkeypatch.delenv("NDF_USAGE_PLAN", raising=False) と monkeypatch.delenv("NDF_USAGE_STEP", raising=False) の 2 行を足す(設計 PR から外した手当て。4f6e19f45 に差分がある。develop には無い)
  • または plugins/ndf/scripts/tests/conftest.py の autouse の fixture で NDF_USAGE_PLAN / NDF_USAGE_STEP を消し、ほかのテストも同じ環境で走らせる

証跡

受け入れ条件

  • 検査のプランの全体テストでこのテストが落ちない(原因を特定し、テストか実装の側で環境・順序への依存を外す)

Metadata

Metadata

Assignees

No one assigned

    Labels

    priority: low文書のみ・低頻度など、余力があれば対応する

    Type

    No type

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions