Novolis.Testing.Budgets 2026.1.1.52

There is a newer version of this package available.
See the version list below for details.
dotnet add package Novolis.Testing.Budgets --version 2026.1.1.52
                    
NuGet\Install-Package Novolis.Testing.Budgets -Version 2026.1.1.52
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Novolis.Testing.Budgets" Version="2026.1.1.52" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Novolis.Testing.Budgets" Version="2026.1.1.52" />
                    
Directory.Packages.props
<PackageReference Include="Novolis.Testing.Budgets" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add Novolis.Testing.Budgets --version 2026.1.1.52
                    
#r "nuget: Novolis.Testing.Budgets, 2026.1.1.52"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package Novolis.Testing.Budgets@2026.1.1.52
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=Novolis.Testing.Budgets&version=2026.1.1.52
                    
Install as a Cake Addin
#tool nuget:?package=Novolis.Testing.Budgets&version=2026.1.1.52
                    
Install as a Cake Tool

Novolis

Novolis · Docs · Source

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.

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 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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
  • net10.0

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 91 10/2/2026
2026.1.1.42 83 10/2/2026