QuickCheckr 0.0.1

There is a newer version of this package available.
See the version list below for details.
dotnet add package QuickCheckr --version 0.0.1
                    
NuGet\Install-Package QuickCheckr -Version 0.0.1
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="QuickCheckr" Version="0.0.1" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="QuickCheckr" Version="0.0.1" />
                    
Directory.Packages.props
<PackageReference Include="QuickCheckr" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add QuickCheckr --version 0.0.1
                    
#r "nuget: QuickCheckr, 0.0.1"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package QuickCheckr@0.0.1
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=QuickCheckr&version=0.0.1
                    
Install as a Cake Addin
#tool nuget:?package=QuickCheckr&version=0.0.1
                    
Install as a Cake Tool

<img src='icon.png' width='40' align='top'/> QuickCheckr

CSI: .NET

Property-based testing for the pragmatic.

Docs NuGet License: MIT

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 spec in Checkr.Spec("Returns true", () => output)
select Case.Closed;

Reports:

------------------------------------------------------------
 Test:                    Example
 Location:                CreateReadMe.cs:34:1
 Original failing run:    85 executions
 Minimal failing case:    5 executions (after 80 shrinks)
 Seed:                    1141724745
 ------------------------------------------------------------
  Executed : BugHouse.Run (3 Times)
   - Input: number = 6
 ------------------------------------------------------------
  Executed : BugHouse.Run (2 Times)
 ===========================================================================
  !! Exception Thrown: System.Exception: Here's Johnny
 ===========================================================================
 Passed Specs
 - 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.
  • Fully integrated with QuickFuzzr: Use any generator or custom shrinker.

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.

Roadmap

  • Elm-style helpfull exceptions.
  • Finish the full QuickCheckr documentation (guide and reference).
  • Async helpers
  • Additional diagnostic flows
  • Cookbook

License

This project is licensed under the MIT License.

Product 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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

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
0.0.8 108 1/25/2026
0.0.7 101 12/29/2025
0.0.6 173 12/21/2025
0.0.5 235 12/14/2025
0.0.4 142 12/13/2025
0.0.3 685 12/2/2025
0.0.2 599 12/1/2025
0.0.1 206 11/27/2025