自動テスト
共通部品(game-kit)は、?gftest=1 を付けて開くと、中の状態を読み取る口(snapshot)と、操作する口(drive)が開きます。テストはこの口だけを使って、窓を開閉する・タブを切り替える・所持品を使う・ミニゲームを解く、を人の代わりに行います。ここには最新の結果と、このブラウザの中で動かす検査があります。
ブラウザの中で実行 まだ実行していません
下の枠の中に、標準のUIシェル(窓・タブメニュー・一時停止メニュー・所持品・手帳・目標・地図・STEPガイド・ミニゲーム・更新情報)を作り、部品ごとの検査を順に動かします。窓が一瞬ずつ開閉します。
| 部品 | 検査 | 結果 | ms |
|---|
最新の結果 読み込み中…
node tools/selftest.mjs の結果です(ラボを更新したときの、kit の最新の実行)。単体テスト・ヘッドレスブラウザでの部品検査・標準の検査ツール(間取り、チャット台本、データ)をまとめています。
| 種類 | 部品 | 検査 | 結果 | ms |
|---|
部品の作り手へ:テストの口のつくりかた
部品は import { gfRegister } from "./gf-test.js" して、gfRegister("名前", () => ({ snapshot, drive, seed, reset })) を呼びます。snapshot() は状態を JSON で返し、drive(動作, 引数) は { ok: true } か { ok: false, error } を返します(例外は投げない)。?gftest=1 が無いと何も起きず、費用はかかりません。時計は __gf.clock.advance(ms)、乱数は __gf.rng.seed(n)、記録は __gf.events。くわしくは game-kit の docs/testing.md。
コマンド:node tools/selftest.mjs(kit 全体)、npm run selftest(1つの作品)、node tools/selftest-all.mjs(全作品。結果は docs/selftest-dashboard.md)。