Novolis.Testing.Budgets
2026.1.1.47
See the version list below for details.
dotnet add package Novolis.Testing.Budgets --version 2026.1.1.47
NuGet\Install-Package Novolis.Testing.Budgets -Version 2026.1.1.47
<PackageReference Include="Novolis.Testing.Budgets" Version="2026.1.1.47" />
<PackageVersion Include="Novolis.Testing.Budgets" Version="2026.1.1.47" />
<PackageReference Include="Novolis.Testing.Budgets" />
paket add Novolis.Testing.Budgets --version 2026.1.1.47
#r "nuget: Novolis.Testing.Budgets, 2026.1.1.47"
#:package Novolis.Testing.Budgets@2026.1.1.47
#addin nuget:?package=Novolis.Testing.Budgets&version=2026.1.1.47
#tool nuget:?package=Novolis.Testing.Budgets&version=2026.1.1.47
Novolis.Testing.Budgets
TUnit ceilings for elapsed time, allocated bytes, and throughput. A separate reader prints BenchmarkDotNet JSON in the same columns.
Install
dotnet add package Novolis.Testing.Budgets
Prerequisites: .NET 10 SDK (net10.0), TUnit.
Quick start
using Novolis.Testing.Budgets;
using TUnit.Core;
[NotInParallel("budgets")]
public sealed class SliceBudgetTests
{
[Test]
[Category("Budget")]
public async Task FirstSlice_stays_within_ceiling()
{
var run = new BudgetRun(
"TimeToFirstSlice",
Iterations: 5,
OperationsPerIteration: 1,
Unit: "slices/s",
Parameters: "4 MiB short/LF",
Allocations: AllocationScope.Process);
var sample = await BudgetProbe.MeasureAsync(run, _ => OpenAndReadAsync());
await sample.AssertWithin(new Budget(MaxElapsed: TimeSpan.FromSeconds(2)));
}
private static Task OpenAndReadAsync() => Task.CompletedTask;
}
Synchronous probes may use AllocationScope.CurrentThread. Async probes use AllocationScope.Process and [NotInParallel], because the process allocation counter includes every thread.
Profile executables stay in a repository benchmarks/ folder and are not launched from merge CI. After a local BenchmarkDotNet run, BenchmarkReport.TryRead maps *-report-full-compressed.json onto the same highlight row. This package does not reference BenchmarkDotNet.
Related packages
| Package | When to use |
|---|---|
Novolis.Testing.TUnit |
JSON, XML, and table dumps inside a test |
Novolis.Testing.Logging |
Capture ILogger output in tests |
More documentation
Support
Pre-release (2026.1.* on GitHub Packages).
| 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
- 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.1.54 | 79 | 10/5/2026 |
| 2026.1.1.53 | 84 | 10/4/2026 |
| 2026.1.1.52 | 83 | 10/4/2026 |
| 2026.1.1.51 | 78 | 10/4/2026 |
| 2026.1.1.50 | 77 | 10/4/2026 |
| 2026.1.1.49 | 81 | 10/4/2026 |
| 2026.1.1.47 | 79 | 10/4/2026 |
| 2026.1.1.45 | 76 | 10/4/2026 |
| 2026.1.1.44 | 78 | 10/4/2026 |
| 2026.1.1.43 | 92 | 10/2/2026 |
| 2026.1.1.42 | 84 | 10/2/2026 |