Fast by architecture.
Compile-time discovery removes runtime reflection. Parallel execution is the default, with precise controls when order matters.
TUnit moves discovery to compile time, runs tests in parallel, and catches mistakes before execution—so your feedback loop stays fast as your suite grows.
[Test]public async Task Checkout_calculates_total(){var total = await checkout.GetTotal();await Assert.That(total).IsEqualTo(42.00m);}
dotnet new install TUnit.Templatesdotnet new TUnit -n MyTestsdotnet testTUnit shifts work out of runtime and into your compiler, pairing speed with strong diagnostics and APIs that feel native to modern C#.
Compile-time discovery removes runtime reflection. Parallel execution is the default, with precise controls when order matters.
Roslyn analyzers flag broken data sources, invalid hooks, and assertion mistakes before they become a red CI run.
Native AOT, trimming, async assertions, Microsoft.Testing.Platform, and first-class integrations—without legacy baggage.
Daily BenchmarkDotNet runs compare real test scenarios on the latest .NET SDK. Inspect every number and the methodology behind it.
Explore benchmarksUbuntu 24.04 · .NET SDK 10.0.302 · Updated daily
Start small. Scale into APIs, distributed apps, browser tests, and compile-time mocks without stitching together a fragile toolchain.
Per-test isolation, shared infrastructure, and trace-aware test clients.
Start, await, test, and dispose your distributed app as one fixture.
Browser, context, and page lifecycle handled for clean end-to-end tests.
Source-generated, AOT-compatible mocks with setup and verification built in.
Starting fresh or migrating from xUnit, NUnit, or MSTest—there’s a clear path in.