Novolis.Raylib.Testing
2026.1.2.112
dotnet add package Novolis.Raylib.Testing --version 2026.1.2.112
NuGet\Install-Package Novolis.Raylib.Testing -Version 2026.1.2.112
<PackageReference Include="Novolis.Raylib.Testing" Version="2026.1.2.112" />
<PackageVersion Include="Novolis.Raylib.Testing" Version="2026.1.2.112" />
<PackageReference Include="Novolis.Raylib.Testing" />
paket add Novolis.Raylib.Testing --version 2026.1.2.112
#r "nuget: Novolis.Raylib.Testing, 2026.1.2.112"
#:package Novolis.Raylib.Testing@2026.1.2.112
#addin nuget:?package=Novolis.Raylib.Testing&version=2026.1.2.112
#tool nuget:?package=Novolis.Raylib.Testing&version=2026.1.2.112
Novolis.Raylib.Testing
Optional test helpers for projects that use Novolis.Raylib. Reference this package only from test projects.
This package references Novolis.Raylib.Capture for framebuffer streaming. Golden-specific streaming glue lives here (GoldenStreamingCapture), not in Capture.
Install
dotnet add package Novolis.Raylib
dotnet add package Novolis.Raylib.Testing
Quick start
Golden tests (preferred for visuals)
No environment variables. Enable native offscreen per assembly:
RaylibTestRuntime.EnableForAssembly();
var result = RaylibGoldenTest.Run(
"raylib-golden-smoke-scene",
new DelegateRaylibFrameRenderer(DrawScene),
new GoldenRunOptions { TestAssembly = typeof(MyTests).Assembly });
Each run writes temp/test-renders/adhoc-runs/.../renders/{storyId}/index.html with render images and an itemized QA expectations column. See docs/testing.md.
Native offscreen harness
using var scope = RaylibTestRuntime.EnterNativeOffscreen();
var result = RaylibOffscreenTestHarness.Run(renderer, new RaylibOffscreenTestOptions
{
MaxFrames = 4,
Width = 320,
Height = 240,
CaptureLastFramePng = true,
});
Legacy env vars (NOVOLIS_RAYLIB_OFFSCREEN_TESTS, NOVOLIS_RAYLIB_NATIVE_TESTS) still work for older tests.
Helpers
| Type | Role |
|---|---|
RaylibGoldenTest |
Golden SHA256 + QA HTML reports |
GoldenStreamingCapture |
Optional EnableStreamingCapture → stream_XXXX.png in story folder |
GoldenArtifactPublisher |
Mirror QA bundle to stable {frameId}.png folders |
IGoldenRunBucketLayout |
Pluggable temp/test-renders/... run folder layout |
QueuedGoldenStoryRenderer |
Drain main-thread queue around scene setup |
IGoldenSceneScript |
Per-frame navigation/setup before capture |
GoldenTestGate |
Opt-in env gate (1 / true) |
GoldenTestPolling |
WaitUntil / WaitUntilAsync for hosted setup |
RaylibGoldenTestExtensions |
RunAndPublish convenience |
RaylibTestRuntime |
Scoped native test state (no env vars) |
RaylibOffscreenTestHarness |
Bounded hidden-window loop |
RaylibTestSession |
Scoped EnterNativeOffscreen() |
DeterministicFrameClock |
Manual timestep |
FramebufferAssert |
PNG SHA256 checks |
RunOnlyIfNativeRaylib |
TUnit skip when native unavailable |
NativeRaylibTestGate |
Probe native offscreen availability |
RaylibHostingTestHost |
In-process IHost |
Full details: docs/testing.md.
Maintainer pipeline (native + tests)
dotnet run --project codegen/Novolis.Raylib.Pipeline -- run maintainer
dotnet test Novolis.Raylib.slnx -c Release --filter "Category!=Native"
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net10.0
- Novolis.Raylib (>= 2026.1.2.112)
- Novolis.Raylib.Capture (>= 2026.1.2.112)
- TUnit (>= 1.72.16)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 2026.1.2.112 | 38 | 10/4/2026 |
| 2026.1.2.111 | 43 | 10/4/2026 |
| 2026.1.2.110 | 36 | 10/4/2026 |
| 2026.1.2.109 | 48 | 10/1/2026 |
| 2026.1.2.108 | 48 | 9/30/2026 |