-
Notifications
You must be signed in to change notification settings - Fork 0
KO Build and Testing
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를 포함한 전체 테스트를 다시 실행해야 합니다.
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 및 의존성이 모두 제거되었다고 볼 수 없습니다.
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 상태 동기화를 확인합니다.
최종 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, 시전 표시기 및 이동을 직접 확인해야 합니다.
ClassicUO - Bad Newbie & Basic IDE Edition