Newer
Older
TIASjudge / .claude / rules / testing.md

paths: ["tests/", "/test_*.py"]

テスト方針 (Testing Policy)

テストを作成・実行するときは本方針に従うこと.

基本方針 (Basic Policy)

  • テストフレームワークは pytest.実行は uv run pytest
  • テスト対象の中心は core/(診断ロジック).GUI の自動テストは書かない(画面は人間が動作確認する.CLAUDE.md「手動確認が必要な作業」参照)
  • 旧実装との結果同一性が本プロジェクトの成功基準(PLAN_01)のため,回帰テストを最重視する

テストの種類 (Test Types)

種類対象方針
単体テストcore/ の各関数数式(Lab 変換等)は手計算・既知値で検証する
回帰テスト診断パイプライン全体旧実装 exe で得た入出力ペア(RGB → 5 色スコア)を固定データとして照合する
異常系テストCSV 読込・入力ガード不正形式・欠損ファイルでの例外を検証する

規則 (Rules)

  • テストファイルは tests/ 配下に test_<モジュール名>.py(配置は project-structure.md 参照)
  • テスト用の固定データ(サンプル CSV・期待値)は tests/fixtures/ に置く
  • SVM のような学習を伴うテストも乱数シードに依存させない(現行 SVM は決定的.非決定的な挙動が見つかった場合は仕様として記録する)
  • モックは外部境界(ファイルダイアログ等)のみに使う.core/ 内部はモックせず実物で検証する
  • テストが遅くなったら(30 秒超),SVM 学習系のテストに slow マーカーを付けて分離する