Arlecchino.Testing 2026.8.5

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

Arlecchino

NuGet Downloads Build Target frameworks MIT

The headless host for applications built on the Arlecchino terminal UI framework. It builds the whole application — container, views, navigation, modals, commands — against a terminal in memory, and draws a frame when a test asks for one. There is nothing to wait for and nothing to race against.

Quick start

dotnet add package Arlecchino.Testing
using var app = new ArlecchinoTestHost(configure: arlecchino =>
    arlecchino.AddGeneratedViews().StartAt(ViewKind.Default));

Assert.Contains("hello", app.Frame(), StringComparison.Ordinal);

app.Press(ConsoleKey.A);

Assert.Equal(ViewKind.About, app.Navigator.CurrentRoute);

The configure delegate is the same ArlecchinoBuilder the real application configures, so a test starts at any route, registers a fake in place of a service, or takes the application's own registration wholesale. The size of the terminal is new ArlecchinoTestHost(width: 120, height: 40), and every test framework works — the host is a plain disposable class.

What a test can reach

  • The frame as text. Frame() is the screen as a string; FrameLines(), FrameContains and FrameLineContaining ask about it without picking the string apart, and Styles() lists the ANSI sequences the frame carried, so a test can assert on colour without matching escape codes.
  • Input. Press with shift, alt and control, Type for text, Click and Scroll for the mouse, and ReadFromTerminal to feed a raw escape sequence the way a terminal would.
  • Time that does not pass on its own. Advance(TimeSpan.FromSeconds(1)) moves the clock rather than sleeping, and the next frame shows what fell due — timeouts, notification lifetimes and work on a timer are tested in microseconds.
  • The application itself. Services, Navigator, State, History and Options are the live objects, so a test can undo, inspect a store or drive navigation directly.
  • The terminal. Terminal is a FakeTerminal: Written is everything sent to it, Copied is what the application put on the clipboard, and its size can be changed mid-test to check a resize.
  • FrameTextWithoutStyles, Lines, BoxWidth and the regexes behind them, for assertions written against the plain text of a frame.

Packages

Package Contents
Arlecchino.Core Surface, Theme, TermColor, KeyText, IArlecchinoTerminal — the renderer, no DI — and atoms with their undo history
Arlecchino views, navigation, modals, commands, hosting, DI, async stores, and the generator
Arlecchino.Pictures PNG, JPEG, BMP, Netpbm, QOI and Targa read into pixels
Arlecchino.Testing this one — the headless host applications write their tests against

They ship together and always carry the same version. This package belongs in the test project only.

Documentation · Testing · Changelog · Source and issues

MIT.

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

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.8.5 50 8/19/2026
2026.8.4 93 8/16/2026
2026.8.3 85 8/16/2026
2026.8.2 85 8/16/2026
2026.8.1 98 8/14/2026
5.0.0 118 8/8/2026
4.0.0 148 8/3/2026
3.1.0 110 8/2/2026
3.0.0 119 8/1/2026
2.13.0 100 7/29/2026
2.12.0 94 7/29/2026
2.11.0 97 7/29/2026
2.10.0 100 7/29/2026
2.9.0 98 7/29/2026
2.8.0 101 7/29/2026
2.7.0 91 7/29/2026
2.6.1 93 7/29/2026
2.6.0 92 7/28/2026
2.5.0 99 7/28/2026
2.4.1 95 7/28/2026
Loading failed