SnowBank.Testing.Framework 7.4.2

dotnet add package SnowBank.Testing.Framework --version 7.4.2
                    
NuGet\Install-Package SnowBank.Testing.Framework -Version 7.4.2
                    
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="SnowBank.Testing.Framework" Version="7.4.2" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="SnowBank.Testing.Framework" Version="7.4.2" />
                    
Directory.Packages.props
<PackageReference Include="SnowBank.Testing.Framework" />
                    
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 SnowBank.Testing.Framework --version 7.4.2
                    
#r "nuget: SnowBank.Testing.Framework, 7.4.2"
                    
#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 SnowBank.Testing.Framework@7.4.2
                    
#: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=SnowBank.Testing.Framework&version=7.4.2
                    
Install as a Cake Addin
#tool nuget:?package=SnowBank.Testing.Framework&version=7.4.2
                    
Install as a Cake Tool

SnowBank.Testing.Framework

An SDK for writing integration tests for distributed .NET applications: spin up several simulated hosts on an in-memory virtual network inside a single test, with all of their traffic routed in-process, and no real sockets, ports, or containers.

Concept

Derive your fixture from DistributedTest and describe a topology with MakeItSo: virtual LANs, web hosts, agents and services. Each one is a real host, built the way your production hosts are (DI, minimal APIs, SignalR, ...), but wired onto a virtual network instead of real sockets. The framework records everything into a single, ordered timeline journal that is printed with the test output, so a failure spread across several hosts reads as one coherent story.

How to use

dotnet add package SnowBank.Testing.Framework
public class MyFacts : DistributedTest
{
    [Test]
    public async Task Two_Hosts_On_A_Virtual_Lan()
    {
        var context = await MakeItSo(env => env.AddSimpleLan(lan =>
        {
            // a simulated web host, configured like a real one
            lan.WithMinimalWebHost("WEB", host =>
            {
                host.ConfigureApplication(app => app.MapGet("/ping", () => "pong"));
            });
        }));

        var web = context.GetWebHost("WEB");

        // `web` is a real host reachable over the virtual network; exercise it from another
        // host, an HTTP client, or a browser (see SnowBank.Testing.Framework.Playwright)
        Assert.That(web.GetUri("/ping"), Is.Not.Null);
    }
}

Add a real Chromium to the same network with the companion SnowBank.Testing.Framework.Playwright package (lan.WithPlaywrightBrowser(...)).

For the timeline-journal format, per-host log levels, always-on HTTP packet capture and the other diagnostics, see the snowbank-distributed-testing guidance in the repository.

Product Compatible and additional computed target framework versions.
.NET net8.0 is compatible.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed.  net9.0 was computed.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  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.  net11.0 is compatible. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (1)

Showing the top 1 NuGet packages that depend on SnowBank.Testing.Framework:

Package Downloads
SnowBank.Testing.Framework.Playwright

Playwright-based virtual web browser test component for the SnowBank distributed-test framework

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
7.4.2 37 7/13/2026
7.4.1 59 7/5/2026
7.4.0 82 5/10/2026