Labcoat 1.2.2

dotnet tool install --global Labcoat --version 1.2.2
                    
This package contains a .NET tool you can call from the shell/command line.
dotnet new tool-manifest
                    
if you are setting up this repo
dotnet tool install --local Labcoat --version 1.2.2
                    
This package contains a .NET tool you can call from the shell/command line.
#tool dotnet:?package=Labcoat&version=1.2.2
                    
nuke :add-package Labcoat --version 1.2.2
                    

Labcoat

A web UI for Microsoft.Testing.Platform. Labcoat builds your Microsoft.Testing.Platform test projects and shows their tests in your browser: a live test tree, failures with the failing line in its source and an expected/actual diff, code coverage per file and per test, watch mode that reruns only the affected tests, and run history with flaky-test detection.

Labcoat showing a failed test with an expected/actual diff

Install and run

Labcoat is a .NET tool and needs the .NET 10 SDK.

# no install: download and run (.NET 10 SDK)
dnx Labcoat

# global tool
dotnet tool install -g Labcoat
labcoat

# local tool, pinned per repository
dotnet new tool-manifest     # once per repository
dotnet tool install Labcoat
dotnet labcoat

Run it in your repository: it finds the test projects (the test project in the current directory, else the nearest .slnx/.sln walking up), builds them and opens the UI in your browser (http://localhost:4300, or the next free port).

labcoat                                   # tests of the current project / solution
labcoat tests/MyApp.Tests --watch         # one project, watch mode
labcoat MyApp.slnx --coverage --no-open   # a solution, coverage on, don't open a browser
labcoat --help                            # all options and environment variables

Requirements

Your test projects must run on Microsoft.Testing.Platform. For MSTest:

<PropertyGroup>
  <OutputType>Exe</OutputType>
  <EnableMSTestRunner>true</EnableMSTestRunner>
</PropertyGroup>

MSTest 4, NUnit (EnableNUnitRunner), xUnit v3 (xunit.v3.mtp-v2) and TUnit are covered by the samples in the repository. Code coverage uses Microsoft.Testing.Extensions.CodeCoverage (included in the MSTest and TUnit packages), with the test project's own coverage.settings.xml / CodeCoverage.xml / *.runsettings when it has one; otherwise Labcoat counts the projects the tests reference and leaves out Labcoat's assemblies, test frameworks and generated code.

Vitest projects run too, with the Labcoat.Vitest runner package: labcoat --runners dotnet,vitest fetches it on the first start (Node.js 20+ and the project's dependencies installed). See docs/runners.md.

Aspire

Using Aspire? Add Labcoat.Aspire.Hosting to your AppHost instead: Labcoat then runs as a resource in the dashboard, with run/watch/coverage commands and optional per-test links to traces and structured logs.

builder.AddLabcoat("tests");

More

Labcoat listens on localhost only by default; see SECURITY.md before exposing it on a network.

License

MIT. Labcoat is a community project and is not affiliated with or endorsed by Microsoft or the .NET Foundation.

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.

This package has no dependencies.

Version Downloads Last Updated
1.2.2 63 11/1/2026
1.2.1 65 11/1/2026
1.2.0 63 11/1/2026
1.1.2 3,044 10/16/2026
1.1.1 98 10/11/2026
1.1.0 96 10/11/2026
1.0.0 108 10/11/2026