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、キャスト表示、移動を手動確認してください。