最終更新: 2026/06/22 18:56
30. テスト概要
目的
本ドキュメント群は、bizlp-accounting-dev スプレッドシートの実データに基づき、 各 GAS 関数の入出力・期待値・異常系を定義する。
テストランナー (mas/900_test/901_test_runner.js) と連携し、
runAllTests() の実行結果を 90_test_results シートで検証する。
テスト自動実行プロトコル
| Phase | テスト名 | 前提条件 | 操作 | 期待結果 | 検証ポイント |
|---|---|---|---|---|---|
| 1 | RPA系テスト | 901_test_runner.js をルートに配置+clasp push | GASでrunAllTests()実行 | T1(HC), T5(SaaS), T6(CAPEX), T7(冪等性), T8(Pipeline) がPASS | 手動操作不要。T2/T3は承認済INV/消込済STLがなければスキップ案内 |
| 2 | Action Aテスト | Phase 1完了 | 32タブでT1生成INV(EMP_0002)の請求ステータスを"承認済"に変更 → runAllTests()再実行 | T2(Action A) がPASS | 42タブにTRN生成、33タブにSTL自動作成 |
| 3 | Action B+マート更新 | Phase 2完了 | 33タブでSTLに決済日入力+"消込済"に変更 → runAllTests()再実行 | T3(Action B), T4(マート更新) がPASS | INV未決済残高=0、財務諸表の数値一致 |
| 4 | クリーンアップ | Phase 3全PASS | 901_test_runner.jsを削除+clasp push | 本番にテストコードなし | git commit → git push origin dev |
テスト結果シート (90_test_results)
| 列 | 内容 |
|---|---|
| A | テストID |
| B | テスト名 |
| C | 結果 (PASS/FAIL) |
| D | 期待値 |
| E | 実際の値 |
| F | 備考 |
テストID ↔ コード対応表
| テストID接頭辞 | 関連ファイル | 関連関数 |
|---|---|---|
| T1- | 401_bat_rpa.js | generateHcInvoices |
| T2- | 403_subledger_engine.js | processInvoiceApprovals |
| T3- | 403_subledger_engine.js | processSettlementClearings |
| T4- | 6xx_datamart_*.js | buildBudgetTrendDataMart |
| T5- | 401_bat_rpa.js | generateSaasInvoices |
| T6- | 401_bat_rpa.js | generateCapexInvoices |
| T7- | 401_bat_rpa.js | 全RPA関数 (冪等性) |
| T8- | 401_bat_rpa.js | generatePipelineInvoices |
FAIL 時の調査手順
90_test_resultsの「期待値」列と「実際の値」列を比較- テストID接頭辞から関連コードを特定
CLAUDE.mdのコーディング規約違反がないか確認git diffで最近の変更を確認- 修正 →
clasp push→runAllTests()再実行
補足: リポジトリ用 node --test のローカル実行 (ADR / lint ツール)
ADR・lint・ドキュメント生成系のスクリプトは Node 標準のテストランナー (node --test tests/*.test.mjs) で検証し、CI では adr-lint.yml 等が回す。上記の GAS 業務テストとは別系統。
既知の罠 — ENOSPC で出力が壊れる: 一時領域が枯渇する (No space left on device) と node --test の標準出力がキャプチャできなくなり、実際は緑でも「出力なし=失敗」と誤読しうる。出力をファイルへ逃がしてから pass/fail を読む:
node --test tests/foo.test.mjs > /tmp/test-out.log 2>&1
grep -iE "pass|fail" /tmp/test-out.log
再発が続くときは、不要な git worktree (git worktree list で確認・他セッションのものは消さない) や tmp/ の肥大が一時領域を圧迫していないか df -h で確認する。