Skip to content

監視の環境変数を export したシェルでは cross-review の既存テスト 2 件が落ち、cross-refactoring の init が中断する #678

Description

@takemi-ohama

何を見つけたか

監視の環境変数(MONITOR_STALL_AGY など)を export したシェルから全体のテストを起動すると、cross-review の既存テスト 2 件が落ちる。

$ MONITOR_STALL_AGY=1800 uv run --with pytest pytest scripts/tests plugins/ndf -q
FAILED plugins/ndf/skills/cross-review/tests/test_monitor_agy.py::test_the_new_name_has_a_stall_default
FAILED plugins/ndf/skills/cross-review/tests/test_monitor_import_safety.py::test_import_succeeds_with_non_numeric_monitor_stall
2 failed, 3645 passed

2 件とも、担当ごとの無進捗の許容の既定値(agy=480)を、MONITOR_STALL_<担当> が無い前提で確かめている。監視の解決順は MONITOR_STALL_<担当> → MONITOR_STALL → 既定なので、担当ごとの環境変数が残っていると既定値ではなくその値が返る。

どこで見つけたか

PR #677 の cross-refactoring の init。着手前のテスト(--baseline-test)が落ちて中断した。進行スクリプトで MONITOR_STALL_AGY=1800 を export していた(agy の無進捗の許容を延ばすため。マイルストーン 21 の運用上の回避)。

なぜこの変更の範囲外なのか

PR #677(#662 の P1)の受け入れ条件は監視の結果ファイルと実行の要約で、無進捗の許容の解決やテストの環境の隔離を含まない。2 件のテストは変更前から同じ前提を持つ。

直さないと何が起きるか

$ MONITOR_TIMEOUT_AGY=1800 MONITOR_STALL_AGY=1800 uv run --with pytest pytest \
    plugins/ndf/skills/cross-review/tests plugins/ndf/scripts/tests -q
FAILED plugins/ndf/skills/cross-review/tests/test_launch_agy.py::test_the_print_timeout_defaults_to_the_longest_phase
FAILED plugins/ndf/skills/cross-review/tests/test_monitor_agy.py::test_the_new_name_has_a_stall_default
FAILED plugins/ndf/skills/cross-review/tests/test_monitor_import_safety.py::test_import_succeeds_with_non_numeric_monitor_stall
3 failed, 1043 passed in 36.76s

既定値を前提にするテストは、監視の環境変数をテストごとに外している。 外していないテストが上の 3 件である。

外し方 箇所
monkeypatch.delenv("MONITOR_...") を 1 変数ずつ 20 箇所(cross-review/tests/test_monitor_stall_default.py 17、test_monitor_generic_stem.py 3)
MONITOR_ で始まる変数をまとめて外す(startswith("MONITOR_")) 6 箇所(plugins/ndf/scripts/tests/test_limits.py 2、cross-review/tests/test_launch_print_timeout.py・test_monitor_phase.py・test_monitor_outcome_file.py、cross-refactoring/tests/test_launch_agy_phases.py 各 1)

リポジトリ直下の conftest.py は、テストの実行中だけ git の全体設定と実行の要約の置き場所(NDF_METRICS_DIR)を差し替えている(冒頭の説明の 3・4)が、MONITOR_ で始まる変数は扱わない。

修正レイヤー

リポジトリ直下の conftest.py(テストの実行中だけ利用者の環境を切り離す共通の前提)。MONITOR_ で始まる環境変数を、git の全体設定・NDF_METRICS_DIR と同じ形で外す。落ちている 3 件へ個別に除去を足すと、既定値を前提にするテストを足すたびに同じ抜けが起きる。共通の前提で外せば、監視の上限を export したシェルからでも全テストが同じ結果になり、テストごとに散った 26 箇所の除去も要らなくなる。

採る手

統合(consolidate_duplication)。テストごとに散った監視の環境変数の除去を、リポジトリ直下の conftest.py の共通の前提へ寄せる。

由来

PR #677

進行

モード: light / 作業ツリー: .worktrees/fix/issue-678-monitor-env-isolation

  • 要求と受け入れ条件 — 2026-09-21 22:51
  • 作業場所の用意 — 2026-09-21 22:55
  • 設計
  • 素材の収集と出典の確定
  • ドキュメント再構成
  • ドキュメントレビュー
  • 計画
  • 実装 — 2026-09-21 22:57
  • 構造改善
  • 実装レビュー — 2026-09-22 02:55
  • 完了判定 — 2026-09-22 03:37
  • Pull Request — 2026-09-21 23:07
  • 確定仕様化 — 2026-09-22 13:54
  • 後片付け — 2026-09-22 11:41
  • 配布 — 2026-09-22 14:17
  • 体裁レビュー
  • リリース後テスト — 2026-09-22 15:06
  • 振り返り — 2026-09-22 15:38

閉じた理由

PR #797 で直り、ndf 10.16.0(2026-09-22、main / タグ ndf--v10.16.0、PR #810)で配布した。リリース後テスト(#810 (comment) )でこの課題の受け入れ条件はすべて合格した。

振り返り: #810 (comment)

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    area: ndf-skillNDF の Skill 本体bugSomething isn't workingpriority: medium保守性・設計一貫性など、計画的に対応する

    Type

    No type

    Projects

    No projects

      Milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions