![]() |
VOOZH | about |
dotnet add package Prova --version 0.5.0
NuGet\Install-Package Prova -Version 0.5.0
<PackageReference Include="Prova" Version="0.5.0" />
<PackageVersion Include="Prova" Version="0.5.0" />Directory.Packages.props
<PackageReference Include="Prova" />Project file
paket add Prova --version 0.5.0
#r "nuget: Prova, 0.5.0"
#:package Prova@0.5.0
#addin nuget:?package=Prova&version=0.5.0Install as a Cake Addin
#tool nuget:?package=Prova&version=0.5.0Install as a Cake Tool
Prova is a high-performance, MTP-native testing framework for .NET 10. It uses the xUnit syntax you already know, but with zero runtime reflection and full Native AOT compatibility. Theories are "unrolled" at compile-time into parameterless test methods -- no boxing, no reflection, instant startup.
Your tests remain exactly the same. Prova supports standard xUnit attributes ([Fact], [Theory], [InlineData], Assert). You only change the runner.
Prova implements the Microsoft Testing Platform (MTP) natively. This means full dotnet test support, TRX reporting, crash/hang dump collection, and code coverage -- all without a legacy VSTest bridge.
Each [InlineData] row is statically compiled into its own parameterless test method by the Source Generator. There is zero boxing, zero object[] allocation, and zero reflection at runtime. This makes [Theory] tests fully Native AOT compatible.
Prova auto-generates a Program.cs entry point with UTF-8 output. Your test project is a self-executing console app from dotnet new. No boilerplate needed.
Tests run in parallel by default (Task.WhenAll), utilizing all available cores. Use [Parallel(max: N)] to bound concurrency.
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net10.0</TargetFramework>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Prova" Version="0.5.0" />
</ItemGroup>
</Project>
Note:
<OutputType>Exe</OutputType>and<TargetFramework>net10.0</TargetFramework>are required. Prova auto-generates the entry point -- you do not need aProgram.cs.
using Prova;
public class CalculatorTests
{
[Fact]
public void Add_ReturnsSum()
{
Assert.Equal(4, 2 + 2);
}
[Theory]
[InlineData(10, 2, 5)]
[InlineData(20, 4, 5)]
public void Divide_ReturnsQuotient(int a, int b, int expected)
{
Assert.Equal(expected, a / b);
}
}
# Run as a self-executing console app (fastest)
dotnet run
# Run via the Microsoft Testing Platform (supports --coverage, --report-trx, etc.)
dotnet test
Prova natively supports MTP CLI arguments. No adapters or bridges needed.
# List all discovered tests (0ms discovery from static registry)
dotnet run -- --list-tests
# Filter tests by name
dotnet run -- --treenode-filter="*Calculator*"
# Generate TRX report
dotnet test --report-trx
# Collect code coverage
dotnet test --coverage
# Crash dump on failure
dotnet test --crashdump
# Hang dump with timeout
dotnet test --hangdump --hangdump-timeout 30000
| Package | Description | NuGet |
|---|---|---|
Prova |
Core framework | 👁 NuGet |
Prova.AspNetCore |
ASP.NET Core integration | 👁 NuGet |
Prova.Playwright |
Playwright browser testing | 👁 NuGet |
Prova.Testcontainers |
Docker container testing | 👁 NuGet |
Prova.FsCheck |
Property-based testing (FsCheck) | 👁 NuGet |
While Prova is a drop-in replacement, it adds enterprise-grade features for strictly governed codebases.
Prevent thread pool starvation in massive test suites by bounding parallelism.
[Parallel(max: 4)] // Limits concurrency for this class
public class DatabaseTests { ... }
Enforce zero-allocation policies or strict memory budgets for critical paths.
[Fact]
[MaxAlloc(0)] // Fails if the test allocates any memory on the heap
public void HotPath_ShouldNotAllocate() { ... }
[Fact]
[Retry(3)] // Automatically retry flaky network tests
public void IntegrationTest() { ... }
Run only the specific test you are debugging (similar to .only in Jest).
[Fact]
[Focus] // Prova will ONLY generate and run this test
public void DebuggingThisRightNow() { ... }
We welcome issues and pull requests. Please see for details.
Prova produces clean, hierarchical output that is easy to parse visually.
MIT
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0 net10.0 is compatible. net10.0-android net10.0-android was computed. net10.0-browser net10.0-browser was computed. net10.0-ios net10.0-ios was computed. net10.0-maccatalyst net10.0-maccatalyst was computed. net10.0-macos net10.0-macos was computed. net10.0-tvos net10.0-tvos was computed. net10.0-windows net10.0-windows was computed. |
Showing the top 4 NuGet packages that depend on Prova:
| Package | Downloads |
|---|---|
|
Prova.FsCheck
FsCheck (Property-Based Testing) integration for the Prova testing framework. |
|
|
Prova.Playwright
Playwright integration for the Prova testing framework. |
|
|
Prova.Testcontainers
Testcontainers integration for the Prova testing framework. |
|
|
Prova.AspNetCore
ASP.NET Core integration for the Prova testing framework. |
This package is not used by any popular GitHub repositories.