Boost.Test vs FsCheck
Boost.Test
boost.orgFsCheck
fscheck.github.ioSide by side
| Figure | Boost.Test | FsCheck |
|---|---|---|
| Price from | Free | Free |
| Free plan | Yes | Yes |
| Free trial | — | — |
| Open source | — | — |
| Windows | Yes | Yes |
| macOS | — | Yes |
| Linux | Yes | Yes |
| Plans published | 1 | 1 |
| Spec score · Unit Testing Frameworks | 8.3 (#3) | 8.4 (#2) |
| Audience | The library is intended for C++ developers who need simple program testing, unit testing, or program execution monitoring. | FsCheck is for developers who want to test properties of .NET programs with generated inputs. |
| License | Boost.Test is distributed under the Boost Software License, Version 1.0. | The project says its BSD license permits modification and redistribution for commercial and non-commercial purposes. |
| Purpose | Boost.Test supports simple program testing, full unit testing, and program execution monitoring. | FsCheck automatically tests .NET programs by checking properties against randomly generated cases. |
| Support | The FAQ directs users to the Boost Users mailing list and the project's GitHub issues for bug reports and feature requests. | The project invites users to report issues on GitHub and says contributors may open issues about documentation problems or gaps. |
Plans
In their own words
Boost.Test
Boost.Test is a free C++11, C++14, and C++17 library for simple program testing, unit testing, and program execution monitoring. Its BOOST_TEST macro handles comparisons involving floating-point values, collections, and strings. Test cases can self-register and be arranged into suites with fixtures, decorators, labels, dependencies, descriptions, and groups. Documentation also covers data-driven and template cases. Assertion context and configurable logging provide failure diagnostics, while XML and JUNIT logs support third-party and continuous-integration tools. Boost.Test can be used as a header-only, static, or shared library and is distributed under the Boost Software License, Version 1.0. The Boost 1.92.0 release page lists Unix source archives plus Windows source and binary downloads. The library page links documentation, Boost Slack discussion, and GitHub issues, and lists dependencies including Algorithm, Assert, Bind, Config, Core, Exception, and Type Traits. Listed platforms are Linux and Windows. There is no free trial because the software is free.
FsCheck
FsCheck checks properties of.NET programs against randomly generated cases. Developers can express properties in F#, C# or VB, then run them with the built-in runner from an interactive session, a command-line program or a test framework. Integrations are documented for xUnit.net and NUnit, with user-created integrations for Expecto, Fuchu, AutoFixture and MSTest. When a property fails, FsCheck shrinks the input and shows a minimal counterexample. Developers can also define custom generators and shrinkers and group them in Arbitrary instances. The library supports parameterized cases and parallel execution, and its packages and NUnit and xUnit.NET plugins are available from NuGet. FsCheck is free: its listed plan is free, with a BSD license permitting commercial and non-commercial modification and redistribution. It runs on Linux, macOS and Windows. The project maintains version 3.x, but its documentation covers 2.x and is described as out of date and incomplete. Its model-based testing API is experimental and exempt from semantic-versioning guarantees.