NextUnit.Generator
1.7.0
See the version list below for details.
dotnet add package NextUnit.Generator --version 1.7.0
NuGet\Install-Package NextUnit.Generator -Version 1.7.0
<PackageReference Include="NextUnit.Generator" Version="1.7.0"> <PrivateAssets>all</PrivateAssets> <IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets> </PackageReference>
<PackageVersion Include="NextUnit.Generator" Version="1.7.0" />
<PackageReference Include="NextUnit.Generator"> <PrivateAssets>all</PrivateAssets> <IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets> </PackageReference>
paket add NextUnit.Generator --version 1.7.0
#r "nuget: NextUnit.Generator, 1.7.0"
#:package NextUnit.Generator@1.7.0
#addin nuget:?package=NextUnit.Generator&version=1.7.0
#tool nuget:?package=NextUnit.Generator&version=1.7.0
NextUnit
A modern, high-performance test framework for .NET 10+ with zero-reflection execution and xUnit-style assertions.
Features
- Zero-reflection execution - Source generators produce delegate-based test registry
- Familiar assertions -
Assert.Equal,Assert.True,Assert.Throws, etc. - Multi-scope lifecycle -
[Before]/[After]at Test, Class, Assembly, or Session level - Fine-grained parallelism -
[ParallelLimit(N)],[NotInParallel] - Parameterized tests -
[Arguments]and[TestData]attributes - Category/Tag filtering -
[Category],[Tag]with CLI and environment variable support - Test dependencies -
[DependsOn]for ordered execution - VSTest integration - Works with Visual Studio Test Explorer and
dotnet test - Native AOT compatible
Quick Start
Installation
dotnet add package NextUnit
Project Configuration
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net10.0</TargetFramework>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="NextUnit" Version="1.6.6" />
</ItemGroup>
</Project>
Writing Tests
using NextUnit;
public class CalculatorTests
{
[Test]
public void Add_ReturnsSum()
{
Assert.Equal(4, 2 + 2);
}
[Test]
public void Divide_ThrowsOnZero()
{
Assert.Throws<DivideByZeroException>(() => { var x = 1 / 0; });
}
[Test]
[Arguments(2, 3, 5)]
[Arguments(-1, 1, 0)]
public void Add_Parameterized(int a, int b, int expected)
{
Assert.Equal(expected, a + b);
}
}
Running Tests
dotnet test # Run all tests
dotnet test --filter "FullyQualifiedName~Calc" # Filter by name
Assertions
| Category | Methods |
|---|---|
| Basic | Equal, NotEqual, True, False, Null, NotNull |
| Collections | Contains, DoesNotContain, Empty, NotEmpty, Single, All |
| Strings | StartsWith, EndsWith, Contains |
| Numeric | InRange, NotInRange, Equal(expected, actual, precision) |
| Exceptions | Throws<T>, ThrowsAsync<T> |
| Advanced | Equivalent, Subset, Disjoint |
Lifecycle Hooks
public class DatabaseTests
{
[Before(LifecycleScope.Test)] // Before each test
public void Setup() { }
[After(LifecycleScope.Test)] // After each test
public void Cleanup() { }
[Before(LifecycleScope.Class)] // Once before all tests in class
public void ClassSetup() { }
[Test]
public void MyTest() { }
}
Scopes: Test, Class, Assembly, Session
Parallel Execution
[NotInParallel] // Run tests serially
public class SlowTests { }
[ParallelLimit(2)] // Max 2 concurrent tests
public class ModerateTests { }
Filtering
[Category("Integration")]
[Tag("Slow")]
public class MyTests { }
# Environment variables
NEXTUNIT_INCLUDE_CATEGORIES=Integration dotnet test
NEXTUNIT_EXCLUDE_TAGS=Slow dotnet test
Performance
| Metric | Result |
|---|---|
| Discovery (1,000 tests) | ~2ms |
| Per-test overhead | ~0.7ms |
| Throughput | 1,852 tests/sec |
See benchmark results for comparison with xUnit, NUnit, and MSTest.
Documentation
- Getting Started
- Migration from xUnit
- Best Practices
- Performance Analysis
- CI/CD Integration
- Changelog
Sample Projects
- Class Library Testing - Business logic testing patterns
- Console App Testing - CLI argument parsing, file processing
- Framework Tests - All NextUnit features demonstrated
Contributing
- Open an issue to discuss your idea
- Fork and create a feature branch
- Write tests for your changes
- Submit a PR
Note: English-only for code, comments, and documentation.
dotnet build --configuration Release
dotnet test samples/NextUnit.SampleTests/NextUnit.SampleTests.csproj
License
Acknowledgments
Inspired by TUnit (architecture), xUnit (assertions), and NUnit/MSTest.
Learn more about Target Frameworks and .NET Standard.
This package has no dependencies.
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 |
|---|---|---|
| 1.19.0 | 75 | 8/4/2026 |
| 1.18.0 | 99 | 7/26/2026 |
| 1.17.0 | 100 | 7/25/2026 |
| 1.16.0 | 104 | 7/25/2026 |
| 1.15.1 | 91 | 7/22/2026 |
| 1.13.0 | 694 | 1/24/2026 |
| 1.12.0 | 175 | 1/24/2026 |
| 1.11.0 | 146 | 1/24/2026 |
| 1.10.0 | 156 | 1/24/2026 |
| 1.9.0 | 153 | 1/22/2026 |
| 1.8.0 | 186 | 1/22/2026 |
| 1.7.1 | 895 | 1/19/2026 |
| 1.7.0 | 432 | 1/18/2026 |
| 1.6.9 | 149 | 1/18/2026 |
| 1.6.8 | 174 | 1/18/2026 |
| 1.6.7 | 129 | 1/18/2026 |
| 1.6.6 | 198 | 1/14/2026 |
| 1.6.5 | 134 | 1/14/2026 |
| 1.6.3 | 143 | 1/14/2026 |
| 1.6.2 | 1,138 | 12/20/2025 |
See https://github.com/crane-valley/NextUnit/blob/main/CHANGELOG.md for release notes.