Skip to content
SPECIFICTION
Get listed

CsCheck

github.com

Free plan Self-hosted
Visit github.com
Spec score 8.0 #6 of 28 in Property-Based Testing Tools

What it is

CsCheck is a free C# random testing library inspired by QuickCheck, intended for self-hosted use. Its composable Gen classes shrink generated cases automatically without Arb classes, and a shrunk case includes a seed that can reproduce a failure. The library supports random, model-based, metamorphic, performance, specification, regression, parallel and equality testing. Parallel tests compare outcomes with possible linearizations and support shrinking. Specification checks can enumerate reachable state spaces exhaustively or sample them, and can test whether declared faults are caught. Its Faster function statistically compares methods to assess whether one is faster and can run as a normal test across platforms. Example tests use TUnit, though the project says CsCheck can be used with any testing framework. The project page reports more than 1,000 F# tests using CsCheck in MKL.NET. NuGet lists version 4.9.1 and installation instructions for the .NET CLI and PackageReference. The project notes that generic recursion limits AOT compatibility; its Dbg module is temporary and may change between minor versions.

Spec sheet

Product
CsCheck is a C# random testing library inspired by QuickCheck.Read 4 Oct 2026 · github.com
AOT caveat
The project says CsCheck is close to being AOT compatible but generic recursion is a limitation.Read 4 Oct 2026 · github.com
Concurrency
Parallel testing compares results against possible linearizations and supports shrinking.Read 4 Oct 2026 · github.com
Debug utility limitation
The Dbg module is described as temporary debug functionality whose API may change between minor versions.Read 4 Oct 2026 · github.com
F# usage
The project page reports 1,000+ F# tests using CsCheck in MKL.NET.Read 4 Oct 2026 · github.com
Framework support
The README says its example tests use TUnit but could equally be used in any testing framework.Read 4 Oct 2026 · github.com
Generators
Its composable Gen classes support automatic shrinking without Arb classes.Read 4 Oct 2026 · github.com
Installation
NuGet lists CsCheck 4.9.1 and documents installation with the .NET CLI package command and PackageReference.Read 4 Oct 2026 · nuget.org
Logging
Sample supports logging types and pass and fail results for analysis, and the project includes a Tyche logging implementation.Read 4 Oct 2026 · github.com
Performance testing
Its Faster function statistically compares whether one method is faster than another and can be run as a normal test across platforms.Read 4 Oct 2026 · github.com
Reproducibility
Shrunk cases have a seed value that can be used to reproduce a failure.Read 4 Oct 2026 · github.com
Security and reflection
The project states that no reflection was used in making CsCheck.Read 4 Oct 2026 · github.com
Specification checks
Specification testing can exhaustively enumerate a reachable state space or sample it, and can check whether declared faults are caught.Read 4 Oct 2026 · github.com
Support and contributions
The README invites contributions through pull requests for new Gen classes or extensions.Read 4 Oct 2026 · github.com
Testing styles
The library supports random, model-based, metamorphic, performance, specification, regression, parallel, and equality testing.Read 4 Oct 2026 · github.com

Plans and prices

CsCheck Free Apache 2 · free forever Read 4 Oct 2026 · github.com

Every CsCheck plan and price →

Strong points and limits

Strong points

  • Shrinks generated cases and records reproducible seeds.
  • Supports model-based, metamorphic and stateful testing.
  • Parallel testing compares possible linearizations and shrinks failures.
  • Can be used with any testing framework.
  • Free under the Apache 2 license.

Limits

  • Generic recursion limits AOT compatibility.
  • The Dbg module is temporary and may change between minor versions.

Who it suits

CsCheck suits C# developers who want generated, shrinkable tests, including stateful or concurrent testing. It may also suit F# users and teams using different testing frameworks.

Verdict

CsCheck offers a wide range of random and stateful testing approaches, with shrinking and seeds to help reproduce failures. Consider its AOT caveat and the temporary status of Dbg if those matter to your project.

Where Specifiction places it

Alternatives to CsCheckAll alternatives →