This is a .NET library that generates sets of test cases, for use by parameterised tests.
Think of it as being a DSL for making 'object mothers', whose generated data can be used as test cases (or for any other purpose, for that matter).
Each test case is built up progressively from smaller pieces of data that are combined together.
The smallest pieces are referred to as 'test variables'. Each test variable is constrained to take values from its own set of allowed 'levels'.
Changing each test variable independently to a new level produces a new test case.
If a test requires a certain 'strength' of coverage of combinations of levels from different test variables, the library produces a stream of test cases that honour this guarantee while avoiding getting swamped with a combinatoric explosion of test cases.
If a parameterised test fails with an exception for a specific test case, the library creates a signature that allows it to reproduce the failing test case immediately in a separate test; this is to aid debugging.
The sources are written in F#, but the API can be used just as comfortably from C# as from F#.
The documentation is on the front page of the GitHub site: https://github.com/sageserpent-open/NTestCaseBuilder.
You can also find sample code ready to run by installing the NuGet samples package: https://www.nuget.org/packages/NTestCaseBuilder.Samples.
Install-Package NTestCaseBuilder -Version 2.5.1
dotnet add package NTestCaseBuilder --version 2.5.1
<PackageReference Include="NTestCaseBuilder" Version="2.5.1" />
paket add NTestCaseBuilder --version 2.5.1