Novolis.Testing.Playwright
2026.1.1.54
dotnet add package Novolis.Testing.Playwright --version 2026.1.1.54
NuGet\Install-Package Novolis.Testing.Playwright -Version 2026.1.1.54
<PackageReference Include="Novolis.Testing.Playwright" Version="2026.1.1.54" />
<PackageVersion Include="Novolis.Testing.Playwright" Version="2026.1.1.54" />
<PackageReference Include="Novolis.Testing.Playwright" />
paket add Novolis.Testing.Playwright --version 2026.1.1.54
#r "nuget: Novolis.Testing.Playwright, 2026.1.1.54"
#:package Novolis.Testing.Playwright@2026.1.1.54
#addin nuget:?package=Novolis.Testing.Playwright&version=2026.1.1.54
#tool nuget:?package=Novolis.Testing.Playwright&version=2026.1.1.54
Novolis.Testing.Playwright
Walkthrough storage on top of TUnit.Playwright PageTest. TUnit owns the browser lifecycle. This package writes a readable story of each test:
walkthrough.md— Markdown story for editors and LLMs (frames sit next to the narration)walkthrough.html— the same pages as a player: steps on the left, one frame that updates on the rightindex.md/index.html— collection of the latest recording of each scenarioframes/NN-step.png— one full-page shot perStepAsyncwalkthrough.json— part + step timelinetrace.zip— Playwright trace (optional, on by default)
Real-time WebM is off by default. Playwright finishes a UI test in seconds, so a <video> of that run is unreadable. Set RecordVideo = true only if you want the raw capture tucked under “Raw capture” in the player.
This package does not start the application under test. Hours (and other hosts) start their own API and Blazor surfaces, then pass BaseUrl.
Install
dotnet add package Novolis.Testing.Playwright
Prerequisites: .NET 10 SDK (net10.0), TUnit.Playwright. Chromium is installed through Microsoft.Playwright.Program.Main(["install", "chromium"]) — C#, not Node. Override the artifact root with NOVOLIS_PLAYWRIGHT_ARTIFACTS. Set NOVOLIS_PLAYWRIGHT_HEADED=1 to show the browser.
Quick start
using Microsoft.Playwright;
using Novolis.Testing.Playwright;
using TUnit.Core;
public sealed class DoorTests : PlaywrightTestBase
{
protected override PlaywrightSessionOptions CreateOptions() => new()
{
BaseUrl = new Uri("http://localhost:5731/"),
ArtifactDirectory = PlaywrightArtifactStore.ForCurrentTest(),
WalkthroughTitle = "Hours door",
};
[Test]
public async Task Sign_in_reaches_the_week()
{
Session.BeginPart("1. Sign in");
await Session.StepAsync("Open door", "The week is behind the door.", page => page.GotoAsync("/"));
using (Session.BeginSection("Set usual hours"))
{
await Session.StepAsync("Open My hours", "The usual clock is a form.", page =>
page.GetByRole(AriaRole.Link, new() { Name = "My hours" }).ClickAsync());
await Session.StepAsync("Enter 09:00–18:00", "Start and end, then save.", async page =>
{
await page.GetByLabel("Usual start").FillAsync("09:00");
await page.GetByLabel("Usual end").FillAsync("18:00");
});
}
using (Session.BeginFlow("Thursday · Changed", PlaywrightWalkthroughFlowKind.Deviated))
{
using (Session.BeginFlow("I worked different hours", PlaywrightWalkthroughFlowKind.Deviated))
{
await Session.StepAsync("Type 10:00–18:00", "Late, same length.", async page =>
{
await page.GetByLabel("Start").FillAsync("10:00");
await page.GetByLabel("End").FillAsync("18:00");
});
}
}
}
}
After the test, open walkthrough.md to read, or index.html at the artifact root to jump between scenarios.
Related packages
| Package | When to use |
|---|---|
TUnit.Playwright |
Browser lifecycle (PageTest, [RecordVideo]) — this package sits on it |
Novolis.Testing.Appium |
Android / Windows MAUI hosts |
Novolis.Testing.TUnit |
JSON/table dump helpers for assertions |
Novolis.Testing.TestServer |
In-process HTTP (not a real browser) |
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
- Microsoft.Playwright (>= 1.63.0)
- TUnit (>= 1.72.16)
- TUnit.Playwright (>= 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 | 31 | 10/5/2026 |
| 2026.1.1.53 | 37 | 10/4/2026 |
| 2026.1.1.52 | 39 | 10/4/2026 |
| 2026.1.1.51 | 34 | 10/4/2026 |
| 2026.1.1.50 | 39 | 10/4/2026 |
| 2026.1.1.49 | 40 | 10/4/2026 |