Write F# unit test assertions as quoted expressions and get detailed step-by-step failure messages automatically.
Unquote is an F# unit testing library that allows developers to write assertions as quoted expressions, which are statically checked by the F# compiler. Instead of providing just pass/fail results, it generates detailed step-by-step evaluation traces when tests fail, showing exactly how expressions were reduced.
F# developers using unit testing frameworks like xUnit.net, NUnit, MbUnit, Fuchu, or MSTest who need clear, educational diagnostics for test failures. It is also suitable for developers working interactively in F# Interactive (FSI) who want to migrate ad-hoc tests to formal suites.
Developers choose Unquote over alternatives because it provides detailed step-by-step evaluation traces for failing tests, making debugging easier by revealing the exact reduction path of expressions. It integrates configuration-free with multiple testing frameworks and leverages F#'s quoted expressions for static type checking, ensuring assertions are compile-time safe.
Write F# unit test assertions as quoted expressions, get step-by-step failure messages for free
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Assertions are written as F# quoted expressions, statically typed and verified by the compiler, catching errors early and ensuring type safety.
Generates step-by-step evaluation traces for failing tests, showing incremental reduction of expressions, which simplifies debugging complex logic.
Works out-of-the-box with popular testing frameworks like xUnit.net and NUnit, requiring no additional setup or configuration files.
Compatible with F# Interactive sessions, allowing developers to test code snippets interactively and migrate them seamlessly to formal test suites.
Built around F# quoted expressions, it cannot be used with C# or other .NET languages, restricting its use in mixed-language projects.
The incremental evaluator does not strictly adhere to expression evaluation order, which can cause issues in tests relying on side effects, as noted in the README.
Decompiling and evaluating quoted expressions step-by-step may introduce runtime overhead compared to simpler assertion libraries, potentially slowing test execution.