QuickCheckr 0.0.5
See the version list below for details.
dotnet add package QuickCheckr --version 0.0.5
NuGet\Install-Package QuickCheckr -Version 0.0.5
<PackageReference Include="QuickCheckr" Version="0.0.5" />
<PackageVersion Include="QuickCheckr" Version="0.0.5" />
<PackageReference Include="QuickCheckr" />
paket add QuickCheckr --version 0.0.5
#r "nuget: QuickCheckr, 0.0.5"
#:package QuickCheckr@0.0.5
#addin nuget:?package=QuickCheckr&version=0.0.5
#tool nuget:?package=QuickCheckr&version=0.0.5
<img src='icon.png' width='40' align='top'/> QuickCheckr
CSI: .NET
Property-based testing for the pragmatic.
Example
Buggy Code:
public class BugHouse
{
private int count;
public bool Run(int number)
{
if (count == 5) throw new Exception("Here's Johnny");
if (number == 6 && count != 3) count++;
if (count >= 3) count++;
return true;
}
}
The Checkr:
from bughouse in Trackr.Stashed(() => new BugHouse())
from number in Checkr.Input("number", Fuzzr.Int())
from output in Checkr.Act("BugHouse.Run", () => bughouse.Run(number))
from expect in Checkr.Expect("Returns true", () => output)
select Case.Closed;
Reports:
------------------------------------------------------------
Test: Example
Location: CreateReadMe.cs:26:1
Original failing run: 85 executions
Minimal failing case: 5 executions (after 82 shrinks)
Seed: 1141724745
------------------------------------------------------------
Executed: BugHouse.Run (3 Times)
- Input: number = 6
------------------------------------------------------------
Executed: BugHouse.Run (2 Times)
===========================================================================
!! Exception Thrown: System.Exception: Here's Johnny
at QuickCheckr.Tests.CreateReadMe.BugHouse.Run(Int32 number) in CreateReadMe.cs:line 69
at QuickCheckr.Tests.CreateReadMe.<>c__DisplayClass2_0.GetCheckr() in CreateReadMe.cs:line 57
at QuickCheckr.Checkr.<>c__DisplayClass8_1`1.TryCatch() in CheckrAct.cs:line 69
at QuickCheckr.UnderTheHood.TheCatcher.InTheCheckr[T](CheckrState state, Func`1 func, Action`1 onException) in UnderTheHood\TheCatcher.cs:line 14
===========================================================================
Passed Expectations
- Returns true: 84x
------------------------------------------------------------
Highlights
- LINQ-based workflow: Build tests using familiar query expressions.
- Shrinking: Reduce randomly generated scenarios to minimal failing cases.
- Stateful testing: Pools, stashed objects, and multi-step behaviours supported out of the box.
- Deterministic: Reproducible runs using seeds.
- Built for Devs: Transparency and traceability as a first-class concern.
Installation
QuickCheckr is available on NuGet:
Install-Package QuickCheckr
Or via the .NET CLI:
dotnet add package QuickCheckr
Documentation
QuickCheckr is in the process of being fully documented, with real, executable examples for every feature, and every statement in the docs is backed by a test.
- Start here: Checkr-ing Things Out
- Then see it catch a real bug: Bolting Horses
Full Guide: This is a work in progess. Follow the link to find out what's coming next.
Roadmap
- Elm-style helpful exceptions.
- Full Guide + Reference documentation.
- Additional diagnostic flows.
- True async execution throughout the engine.
Dependencies
- QuickFuzzr: For random input generation.
- QuickPulse.Show: For stringifying any C# object or value.
- QuickPulse: Implicit through QuickPulse.Show. But also used for diagnostics filtering and transformations.
The Wonder(ing) Years
License
This project is licensed under the MIT License.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net8.0
- QuickFuzzr (>= 0.1.7)
- QuickPulse.Show (>= 0.1.11)
NuGet packages (2)
Showing the top 2 NuGet packages that depend on QuickCheckr:
| Package | Downloads |
|---|---|
|
QuickTestr
A small, opinionated property-based testing DSL for C#, built on QuickCheckr. Define inputs, assert invariants, and get reproducible, shrunk counterexamples. |
|
|
QuickCheckr.Authoring
Companion package for authoring QuickCheckr-based tests in dependent libraries. Intended primarily for internal test projects. |
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 0.1.2 | 151 | 5/9/2026 |
| 0.1.1 | 190 | 4/26/2026 |
| 0.1.0 | 149 | 4/10/2026 |
| 0.0.12 | 120 | 4/8/2026 |
| 0.0.11-preview1 | 98 | 4/6/2026 |
| 0.0.10 | 115 | 4/4/2026 |
| 0.0.9 | 117 | 3/19/2026 |
| 0.0.8 | 142 | 1/25/2026 |
| 0.0.7 | 136 | 12/29/2025 |
| 0.0.6 | 212 | 12/21/2025 |
| 0.0.5 | 276 | 12/14/2025 |
| 0.0.4 | 180 | 12/13/2025 |
| 0.0.3 | 717 | 12/2/2025 |
| 0.0.2 | 636 | 12/1/2025 |
| 0.0.1 | 241 | 11/27/2025 |