Skip to content

Latest commit

 

History

History
39 lines (29 loc) · 4.19 KB

TESTING.md

File metadata and controls

39 lines (29 loc) · 4.19 KB

検証手順

自動テスト

mvn clean verify

鉱石の置換ルール、チャンク座標、リージョンヘッダーの読み取りなどをJUnitで確認します。実サーバーの保存・読み込み、他プラグインとの組み合わせ、生成中チャンクの挙動まで保証するものではありません。

Paperでの手動検証

本番サーバーを起動・停止・変更せず、別ディレクトリの使い捨てワールドで実施します。Paperの正確なバージョン、Javaバージョン、Orelessのコミット/JARハッシュ、他プラグインを記録してください。サーバーを用意するときはMinecraft/Paperの利用条件を各自で確認してください。

  1. 停止中にテストワールドのバックアップを取得し、復元できることを確認する。
  2. buildと別名の通常ワールドをtarget-worldsに設定し、対象外のresource、lobbyも用意する。Oreless有効化後、buildの新規チャンクの対象鉱石が石・深層岩になり、ほかのワールドは変わらないことを確認する。
  3. 生成済みのbuildに鉱石を設置する。通常の再起動・チャンク再読み込みだけでは、その鉱石が消えないことを確認する。
  4. 権限のないプレイヤーが/oreless scan build confirmを実行できないことを確認する。
  5. 停止・保存済みのワールドについて、生成済みチャンク座標の一覧を独立に取得しておく。管理者のpreview buildではブロックが変わらず、scan buildでは開始せず、scan build confirm後、対象鉱石と設置鉱石が置換され、非対象ブロックが残ることを確認する。
  6. スキャン前後でリージョンのチャンク座標を比較する。新しい座標が作られていないことを確認する。plugins/Oreless/existing-chunks-<UUID>.txtは実行時の対象一覧であり、ワールドのバックアップではない。
  7. migration-state.ymlの対象UUIDの完了フラグがtrueとなり、2回目のscanが実行されないことを確認する。追加で設置した鉱石がrescan build confirmで置換されることを確認する。
  8. 大きなテストワールドでstatusとcancel、および途中停止を試し、未完了が完了扱いにならないことを確認する。再開は途中再開ではなく対象全体の再スキャンになること、途中までの変更は残ることも確認する。
  9. テスト用コピーで壊れたリージョン、書き込めない設定ファイル、チャンク読み込み失敗を試し、誤って完了扱いにしないことを確認する。
  10. 正常停止・再起動後に置換結果と完了フラグが残っていることを確認する。

/reloadやホットリロードは導入手順に含めません。サーバーを完全に停止してからJARを入れ替えてください。Folia、カスタム生成器、他のBlockPopulatorとの併用は、個別の検証なしに対応済みとしないでください。

  1. target-worldsの不正な型・重複・空文字、壊れたconfig/stateを拒否することを確認する。旧configからの完了状態移行がbuildにだけ適用されることを確認する。
  2. テスト環境でプラグインを無効化した後、登録されたpopulatorが残っていないことを確認する。正式な更新手順では完全再起動を使う。
  3. 複数ワールドの指定省略が安全に拒否され、1ワールドの完了が別ワールドのスキャンを妨げないことを確認する。

リリース前

  • 自動テストと上記の手動検証結果を記録する。
  • 公称対応Paperバージョンと実際の検証版をREADME/リリースノートへ記載する。
  • pom.xmlの版番号を更新し、既存リリースのJARを黙って上書きしない。
  • 配布JARにMETA-INF/LICENSEがあり、Paper APIやJUnitのクラスが含まれないことを確認する。
  • sha256sum target/oreless-*.jarの結果をリリースノートへ掲載する。
  • リリース公開とサーバーへの導入は、別々の作業として扱う。