All Projects → fscheck → Fscheck

fscheck / Fscheck

Licence: bsd-3-clause
Random Testing for .NET

Programming Languages

csharp
926 projects
fsharp
127 projects

Projects that are alternatives of or similar to Fscheck

quickcheck
Randomized testing for Prolog à la QuickCheck
Stars: ✭ 18 (-97.89%)
Mutual labels:  quickcheck
edd
Erlang Declarative Debugger
Stars: ✭ 20 (-97.66%)
Mutual labels:  quickcheck
Quicktheories
Property based testing for Java 8
Stars: ✭ 483 (-43.51%)
Mutual labels:  quickcheck
fuzz-rest-api
Derive property based testing fast-check into a fuzzer for REST APIs
Stars: ✭ 38 (-95.56%)
Mutual labels:  quickcheck
hypothesis sqlalchemy
hypothesis strategies for generating SQLAlchemy objects
Stars: ✭ 24 (-97.19%)
Mutual labels:  quickcheck
lplzoo
Fine-grain implementations of common lambda calculi in Haskell, tested with QuickCheck
Stars: ✭ 32 (-96.26%)
Mutual labels:  quickcheck
Fsharp Hedgehog
Release with confidence, state-of-the-art property testing for .NET.
Stars: ✭ 219 (-74.39%)
Mutual labels:  quickcheck
Stream data
Data generation and property-based testing for Elixir. 🔮
Stars: ✭ 597 (-30.18%)
Mutual labels:  quickcheck
pbt-frameworks
An overview of property-based testing functionality
Stars: ✭ 29 (-96.61%)
Mutual labels:  quickcheck
Jqf
JQF + Zest: Coverage-guided semantic fuzzing for Java.
Stars: ✭ 340 (-60.23%)
Mutual labels:  quickcheck
ava-fast-check
Property based testing for AVA based on fast-check
Stars: ✭ 44 (-94.85%)
Mutual labels:  quickcheck
kitimat
A library for generative, property-based testing in TypeScript and Jest.
Stars: ✭ 68 (-92.05%)
Mutual labels:  quickcheck
ke-e
假的 (ké--ê) is a property-based testing library, inspired by QuickCheck, Hypothesis, JSVerify and faker.js.
Stars: ✭ 25 (-97.08%)
Mutual labels:  quickcheck
quick.py
Property-based testing library for Python
Stars: ✭ 15 (-98.25%)
Mutual labels:  quickcheck
Tasty
Modern and extensible testing framework for Haskell
Stars: ✭ 499 (-41.64%)
Mutual labels:  quickcheck
Rantly
Ruby Imperative Random Data Generator and Quickcheck
Stars: ✭ 241 (-71.81%)
Mutual labels:  quickcheck
haskell-schema
A library for describing Haskell data types and obtain free generators, JSON codecs, pretty printers, etc.
Stars: ✭ 16 (-98.13%)
Mutual labels:  quickcheck
Junit Quickcheck
Property-based testing, JUnit-style
Stars: ✭ 821 (-3.98%)
Mutual labels:  quickcheck
Haskell Hedgehog
Release with confidence, state-of-the-art property testing for Haskell.
Stars: ✭ 584 (-31.7%)
Mutual labels:  quickcheck
Jqwik
Property-Based Testing on the JUnit Platform
Stars: ✭ 265 (-69.01%)
Mutual labels:  quickcheck

What is FsCheck?

FsCheck is a tool for testing .NET programs automatically. The programmer provides 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. While writing the properties, you are actually writing a testable specification of your program. Specifications are expressed in F#, C# or VB, using combinators defined in the FsCheck library. FsCheck provides combinators to define properties, observe the distribution of test data, and define test data generators. When a property fails, FsCheck automatically displays a minimal counter example.

FsCheck is a port of Haskell's QuickCheck. Important parts of the manual for using FsCheck is almost literally adapted from the QuickCheck manual. Any errors and omissions are entirely my responsibility.

Since v0.5, scalacheck has influenced FsCheck as well. Scalacheck is itself a port of QuickCheck to Scala.

FsCheck's generator combinators can be used in any testing framework to easily generate a number of random values for many types, and FsCheck itself integrates nicely with existing unit testing frameworks such as NUnit, xUnit, MSTest and MbUnit.

Releases

FsCheck follows Semantic Versioning 2.0.0, except for the API exposed in FsCheck.Experimental which is subject to change at any time.

All AppVeyor builds are available using the NuGet feed: https://ci.appveyor.com/nuget/fscheck

If using Paket, add the source at the top of paket.dependencies.

source https://www.nuget.org/api/v2
source https://ci.appveyor.com/nuget/fscheck

See the build history for a list of available versions: https://ci.appveyor.com/project/kurtschelfthout/fscheck/history

Here are some options for specifying the dependency:

nuget FsCheck
nuget FsCheck prerelease
nuget FsCheck 2.0.4
nuget FsCheck 2.0.5-b247

Documentation

Contributing

Pull requests very welcome!

Check out the issues marked up-for-grabs if you need any inspiration.

It's very rare that we reject PRs. Generally, if you intend to make a bigger change, it's better to open an issue first to discuss.

Building

Checkout the project and run build.cmd on Windows or build.sh on Linux/OSX. That should pull in all the dependencies, build and run the tests.

For Visual Studio/MonoDevelop/Xamarin Studio/VsCode: open (the folder that contains) FsCheck.sln and start coding.

FsCheck uses FAKE, run build.[cmd|sh] -t <Target> to do something. Important targets are:

  • Build: cleanly builds all platforms in Release mode.
  • Tests: builds and runs the tests.
  • Docs: builds and generates documentation. FsCheck uses FSharp.Formatting, so literate fsx files in the docs folder.
  • WatchDocs: convenient when developing documentation - starts a local webserver and watches for changes in the docs folder.
  • PacketPack: Creates NuGet packages.
  • CI: Target that is run on AppVeyor, basically all of the above.

CI

Windows on AppVeyor Linux on Travis CI
Build status Build Status
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].