Testing
Run tests from the repository root. Each suite has its own project and CI matrix
dotnet test Tests/Hyprism.Core.Tests/Hyprism.Core.Tests.csproj
dotnet test Tests/Hyprism.LocalNode.Tests/Hyprism.LocalNode.Tests.csproj
dotnet test Tests/Hyprism.Desktop.Tests/Hyprism.Desktop.Tests.csproj
Coverage boundariesโ
| Suite | Main coverage |
|---|---|
| Core | Launch coordination, process tracking, profiles, downloads, configuration, mirrors, patching, mods |
| Local Node | HTTPS routes, tokens, account persistence, certificates, companion lifecycle |
| Desktop | View-model workflows, localization, platform adapters, native view rendering and controls |
Local Node tests pin generated certificates and disable platform trust changes. Unit tests use temporary data and mocks rather than live account, game, or third-party services
Desktop tests share an Avalonia application, dispatcher, and compositor and run sequentially. Wait for a final property or state; use fixed delays only when deliberately sampling an intermediate animation frame
Run a focused testโ
Use a fully qualified name filter during development
dotnet test Tests/Hyprism.Desktop.Tests/Hyprism.Desktop.Tests.csproj \
--filter FullyQualifiedName~StringLocalizerTests
Screenshot generation is an opt-in workflow documented under Documentation site. Normal test runs skip that capture
CI and manual checksโ
Core, Desktop, and Local Node run in separate reusable workflows, each with Ubuntu, Windows, and macOS matrix jobs and fail-fast: false. Every matrix job writes a GitHub Step Summary from the TRX result file with total, passed, skipped, and error counts. Failed runs include the last failure in a text code block and upload the TRX file as a job artifact
The macOS entry in the Local Node matrix also publishes apphosts and checks HTTPS health with a generated authority in the disposable runner keychain. This is a step in the macOS Local Node job, not a separate test job. It does not cover an interactive trust prompt on a player's Mac or a full proprietary Hytale launch
Packaging is a separate check group. In ci.yml, it starts only after the Core, Desktop, and Local Node reusable workflows complete successfully
Verify native compositor behavior, platform dialogs, and real game compatibility manually when those boundaries change. For a documentation-only change, run content checks and static export
Source: Tests