Skip to content

[unit-tests] カバレッジ補強 フェーズ2: Commands/ MapCommand/Process/UnitCommand テスト追加#915

Open
github-actions[bot] wants to merge 2 commits intomasterfrom
unit-tests/phase2-commands-2026-04-05-724b9f47d9d1ce7f
Open

[unit-tests] カバレッジ補強 フェーズ2: Commands/ MapCommand/Process/UnitCommand テスト追加#915
github-actions[bot] wants to merge 2 commits intomasterfrom
unit-tests/phase2-commands-2026-04-05-724b9f47d9d1ce7f

Conversation

@github-actions
Copy link
Copy Markdown
Contributor

@github-actions github-actions bot commented Apr 5, 2026

🧪 カバレッジ補強レポート (2026-04-05)

現在のフェーズ / Current Phase

  • フェーズ2: Commands/ 拡充 — Command.mapcommend.cs / Command.process.cs / Command.unitcommand.cs

追加したテスト / Tests Added

ファイル 件数 内容
CommandMapCommandTests.cs 7件 MapCommand 早期リターン・AutoDefense 反転
CommandProcessTests.cs 13件 ProceedCommand/ProceedInput/CancelCommand 状態遷移
CommandUnitCommandTests.cs 5件 UnitCommand 早期リターン

合計: 25件追加

テスト観点

CommandMapCommandTests.cs

  • MapCommand(EndTurnCmdID) × ViewMode=trueViewModefalse になり CommandState="ユニット選択" に設定される
  • MapCommand(AutoDefenseCmdID)SystemConfig.AutoDefense がトグルされる (false→true, true→false)

CommandProcessTests.cs

  • ProceedCommand(by_cancel=true) × ViewMode=trueViewMode=false で早期リターン
  • ProceedCommand(by_cancel=false) × ViewMode=trueViewMode 変更なしで早期リターン
  • ProceedInput(Left, "マップコマンド")CommandState="ユニット選択" に変更
  • ProceedInput(Right, "マップコマンド")CommandState="ユニット選択" に変更
  • CancelCommand() × CommandState="ユニット選択" → 状態変更なし
  • CancelCommand() × CommandState="コマンド選択"CommandState="ユニット選択", SelectedCommand="" に設定

CommandUnitCommandTests.cs

  • UnitCommand(MoveCmdID) × CommandState="移動後コマンド選択" → 早期リターン (GUI なし)
  • UnitCommand(未知ID) × CommandState="移動後コマンド選択" → 早期リターン (GUI なし)

カバレッジサマリー / Coverage Summary

  • フェーズ1 (CmdDatas): ABGMCmd/AIfCmd/ATalkCmd は具象サブクラス経由でテスト済み、FontCmd は Linux 非対応で除外済み
  • フェーズ2 (Commands/): テストファイル 8件 / ソースファイル 15件
    • テスト済み: define, props, state, process, mapcommend, unitcommand (部分)
    • 未テスト/除外: attack, launch, preview, unitability, unitcommand(private), unitform, unitmove, unitsp, unitsupply, unitxxx
  • フェーズ3 (Intermissions/): テストなし (次フェーズ)

除外理由 / Excluded Reasons

以下のファイルは今回除外しました:

  • Command.attack.cs / Command.process.cs (各1500行超): GUI 依存が深く、設定が複雑
  • Command.unitmove.cs / Command.unitxxx.cs / Command.unitsupply.cs / Command.launch.cs 等: public API が存在せず、private メソッドのみ
  • Command.unitcommand.csWaitCmdID 以降: GUI.RedrawScreen() / Map.Terrain() 等が必要

テスト結果 / Test Results

Passed: 7385, Skipped: 0, Failed: 0

次のステップ: 次回実行で Intermissions/ (フェーズ3) または残りの Commands/ ファイルをカバー
Next step: Cover Intermissions/ (Phase 3) or remaining Commands/ files on the next run

Generated by カバレッジ補強エージェント / Coverage Reinforcement Agent ·

Command.mapcommend.cs / Command.process.cs / Command.unitcommand.cs の
公開 API およびアクセス可能な状態遷移パスを対象にテストを追加する。

追加テストファイル:
- CommandMapCommandTests.cs (7件)
  - MapCommand_EndTurnCmdID × ViewMode=true 早期リターン
  - MapCommand_AutoDefenseCmdID 自動反撃モード反転
- CommandProcessTests.cs (13件)
  - ProceedCommand × ViewMode=true 早期リターン / by_cancel 分岐
  - ProceedInput × マップコマンド状態でのボタン入力
  - CancelCommand × ユニット選択 / コマンド選択 状態遷移
- CommandUnitCommandTests.cs (5件)
  - UnitCommand × MoveCmdID / 未知ID × 移動後コマンド選択 早期リターン

合計: 25件追加 (7385件 → +25件)

備考:
- attack.cs / process.cs の複雑なパスは GUI 依存が深いため除外
- unitmove / unitxxx / unitsupply / launch 等の private-only ファイルは
  公開 API が存在しないためテスト困難

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@7474 7474 had a problem deploying to SRC#DataViewer dev April 5, 2026 20:59 — with GitHub Actions Failure
@github-actions github-actions bot mentioned this pull request Apr 6, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant