JA Build and Testing - LIHACHTETAN/ClassicUO-BadNewbie-BasicIDE GitHub Wiki

ソースからのビルドとテスト

Home · BASIC · UO API · A–Z · Examples · Languages

開発環境

  • Windows x64 と 64-bit PowerShell;
  • global.json が指定する .NET SDK、または同じ feature band の互換 patch;
  • 利用可能な NuGet cache、または restore 用ネットワーク;
  • external\YokoTheia を変更する場合は Node.js と npm;
  • フル版、without-Basic 版、NativeAOT 出力を別々に作る十分な空き容量。

SDK feature band、Theia package versions、lockfile を変更した場合は、必ず IDE を含む全テストをやり直してください。

.NET restore とテスト

project のルートで実行します:

dotnet --version
dotnet restore .\ClassicUO.sln -p:NuGetAudit=false
dotnet test .\tests\ClassicUO.UnitTests\ClassicUO.UnitTests.csproj -c Release
dotnet test .\external\InjectionScript\src\InjectionScript.Tests\InjectionScript.Tests.csproj -c Release
dotnet test .\external\InjectionScript\src\InjectionScript.Lsp.Tests\InjectionScript.Lsp.Tests.csproj -c Release

フル版と project-without-yoko は別々に restore、build、test します。フル版の成功だけでは、without-Basic 版から Basic UI、payload、依存関係が除去されていることを証明できません。

Eclipse Theia

IDE frontend、Basic language extension、その依存関係を変更した場合に再ビルドします:

cd .\external\YokoTheia
npm install
npm run build

ビルド後は Run メニュー、全ショートカット、Explorer の複数スクリプト選択、状態色、Outline、Problems、Output、API Inspector、Manual、Variables、Watch、Call Stack、panel resize/detach、IDE 再表示後の Runtime 状態同期を確認します。

NativeAOT とゲームデータ

最終 Windows クライアントは NativeAOT x64 として検証します。保護された Ultima Online データを repository に含める必要はありません。graphical smoke test は、ローカルにある正規のゲームデータを使って別途行います。

必須検証マトリクス

対象 期待結果
ClassicUO Full 全テスト成功
ClassicUO without Basic 全テスト成功
InjectionScript Runtime 全テスト成功
LSP / IDE 全テスト成功
Full NativeAOT build errors 0
without-Basic build build errors 0
Runtime/API Manual parity 差分がすべて 0
Native payload probes 両クライアントで passed
展開後 ZIP 検証 passed

機能回帰テスト

  • AutoLoad 選択がキャラクター単位で保存され、起動時に正しいファイルを読む;
  • Basic Auto Load が選択 procedures を表示して実行;
  • Basic Example が通常マクロへ保存され実行;
  • IDE の新規/既存ファイルが正しい場所へ保存;
  • スクロールなしで文書全体を初期化;
  • Run、Debug、Pause、Continue、Step、Stop、all-script commands;
  • 複数スクリプト選択と緑/黄/黒の状態;
  • API Manual が Runtime registration のみから構築;
  • Basic examples がすべて検証可能;
  • 全対応言語で技術構文が翻訳されない;
  • without-Basic 版に Basic UI と実行依存関係がない。

配布アーカイブの確認

ZIP 作成後は、新しい一時フォルダーへ展開し、staging tree と各ファイルの SHA-256 を比較し、両方の実行 payload に native probes を再実行します。ZIP 自体の SHA-256 は隣接する .sha256.txt に書きますが、Wiki に特定の配布物だけの値を固定記載しません。

自動テストは実サーバー試験の代用ではありません。server gump、shard 固有 packet extension、ゲームデータ互換性、フォント、hover、Info Bar、キャスト表示、移動を手動確認してください。