FsCheck 2.10.0

FsCheck is a tool for testing .NET programs automatically. You provide a specification of the program, in the form of properties which functions, methods or objects should satisfy, and FsCheck then tests that the properties hold in a large number of randomly generated cases. Such properties are actually a testable specification of your program.

Properties are written in F#, C# or VB. FsCheck helps you to define properties, observe the distribution of test data, and define test data generators. Crucially, when a property fails, FsCheck automatically displays a minimal counter example.

There is a newer version of this package available.
See the version list below for details.
Install-Package FsCheck -Version 2.10.0
dotnet add package FsCheck --version 2.10.0
<PackageReference Include="FsCheck" Version="2.10.0" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add FsCheck --version 2.10.0
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: FsCheck, 2.10.0"
For F# scripts that support #r syntax, copy this into the source code to reference the package.

Release Notes

Update FsCheck.NUnit to work with NUnit 3.8.1. FsCheck.NUnit is not backwards compatible with earlier NUnit versions because NUnit changed the name of a few methods in their extension API.
Gen.listOf and Gen.arrayOf now divide the size among the element generators, to avoid exponential explosion of size when high-dimensional types like `int list list list` are generated. This is the approach advocated in https://gupea.ub.gu.se/handle/2077/22087. The effect on list and array generators is as follows, quoting from that text: This adjustment of the list generator impacts the distribution in several ways. Most apparently it inverts the correlation between the length of the list and the size of the elements, long lists will tend to have small elements instead of large. Short lists with small elements will be generated whenever n is low. Short lists with large elements will occur when n is large and a small k is chosen. If a large k is chosen instead, long list with small elements will be generated. The only way to generate long lists with large elements is if n is very large, which is natural given that the purpose of the modified algorithm is to reduce the size of test data.
Add Gen.piles generator, which generates a list of random elements that add up to a given sum.

NuGet packages (18)

Showing the top 5 NuGet packages that depend on FsCheck:

Package Downloads
FsCheck.Xunit
FsCheck.Xunit integrates FsCheck with xUnit.NET by adding a PropertyAttribute that runs FsCheck tests, similar to xUnit.NET's FactAttribute. All the options normally available in vanilla FsCheck via configuration can be controlled via the PropertyAttribute.
FsCheck.Nunit
FsCheck.NUnit integrates FsCheck with NUnit by adding a PropertyAttribute that runs FsCheck tests, similar to NUnit TestAttribute. All the options normally available in vanilla FsCheck via configuration can be controlled via the PropertyAttribute.
Expecto.FsCheck
Property testing for Expecto, powered by FsCheck
AutoFixture.Idioms.FsCheck
Ubiquitous use of AutoFixture for unit testing has given rise to a number of idiomatic unit tests - unit tests that tend to follow common templates. The AutoFixture Idioms.FsCheck library encapsulates these idioms into reusable classes and methods.
MBrace.Tests
A collection of abstract NUnit-based test suites for evaluating MBrace runtime implementations.

GitHub repositories (11)

Showing the top 5 popular GitHub repositories that depend on FsCheck:

Repository Stars
dotnet/runtime
.NET is a cross-platform runtime for cloud, mobile, desktop, and IoT apps.
akkadotnet/akka.net
Port of Akka actors for .NET
commandlineparser/commandline
The best C# command line parser that brings standardized *nix getopt style, for .NET. Includes F# support
AutoFixture/AutoFixture
AutoFixture is an open source library for .NET designed to minimize the 'Arrange' phase of your unit tests in order to maximize maintainability. Its primary goal is to allow developers to focus on what is being tested rather than how to setup the test scenario, by making it easier to create object graphs containing test data.
MetacoSA/NBitcoin
Comprehensive Bitcoin library for the .NET framework.

Version History

Version Downloads Last updated
3.0.0-alpha5 1,657 12/28/2020
3.0.0-alpha4 176,859 10/6/2018
3.0.0-alpha3 72,213 12/30/2017
3.0.0-alpha2 6,883 10/19/2017
3.0.0-alpha1 2,285 9/26/2017
2.15.1 1,270 2/27/2021
2.15.0 1,219 2/23/2021
2.14.6 1,175 2/21/2021
2.14.5 702 2/18/2021
2.14.4 8,309 1/31/2021
2.14.3 280,107 6/9/2020
2.14.2 91,398 3/11/2020
2.14.0 517,371 4/17/2019
2.13.0 217,314 11/11/2018
2.12.1 26,269 10/18/2018
2.12.0 8,690 10/6/2018
2.11.0 132,200 6/15/2018
2.10.10 64,305 5/15/2018
2.10.9 101,179 4/10/2018
2.10.8 67,196 3/3/2018
2.10.7 15,668 1/29/2018
2.10.6 18,417 12/30/2017
2.10.5 10,122 12/28/2017
2.10.4 76,242 11/8/2017
2.10.3 10,481 9/26/2017
2.10.2 10,054 9/25/2017
2.10.1 2,074 9/23/2017
2.10.0 14,505 9/7/2017
2.9.2 9,085 8/28/2017
2.9.1 1,647 8/27/2017
2.9.0 104,670 5/18/2017
2.9.0-rc3 4,609 5/7/2017
2.9.0-rc2 1,381 5/6/2017
2.9.0-rc1 1,354 5/6/2017
2.8.2 7,227 5/6/2017
2.8.1 1,953 5/1/2017
2.8.0 17,118 3/15/2017
2.7.2 9,119 3/5/2017
2.7.1 11,849 2/13/2017
2.7.0 9,262 1/15/2017
2.6.3 1,656 1/13/2017
2.6.2 92,097 10/7/2016
2.6.1 21,688 9/25/2016
2.6.0 39,713 8/3/2016
2.5.0 42,678 6/7/2016
2.4.0 15,202 4/20/2016
2.3.0 3,933 4/11/2016
2.2.5 4,601 3/28/2016
2.2.4 22,238 12/17/2015
2.2.3 4,106 11/26/2015
2.2.2 4,197 11/14/2015
2.2.1 2,277 11/5/2015
2.2.0 14,783 11/1/2015
2.1.0 10,063 9/30/2015
2.0.7 13,422 8/20/2015
2.0.6 2,115 8/14/2015
2.0.5 15,551 7/31/2015
2.0.4 5,766 7/20/2015
2.0.3 29,208 7/10/2015
2.0.2 1,669 7/7/2015
2.0.1 11,612 5/23/2015
2.0.1-rc1 1,442 5/23/2015
2.0.0-alpha 1,492 4/27/2015
1.0.4 18,111 12/9/2014
1.0.3 3,586 11/18/2014
1.0.2 2,439 10/27/2014
1.0.1 3,030 10/18/2014
1.0.0 6,967 8/3/2014
0.9.4 31,375 5/24/2014
0.9.3 2,145 5/9/2014
0.9.2 27,085 11/7/2013
0.9.1 4,550 7/2/2013
0.9.0.1 1,696 6/21/2013
0.9.0 1,753 6/18/2013
0.8.3 2,727 8/26/2012
0.8.2 1,804 7/4/2012
0.8.1 1,965 6/25/2012
0.7.1 2,964 5/29/2011
Show less