Testing
- ppx_expect: a Cram-like framework for OCaml, enabled by PPX metaprogramming. Write some code that creates output, and then create expectation tests that match the output against a canonical version you write.
- mdx: ensure correctness of example code blocks in Markdown files (Cram-like testing for the output of shell scripts and OCaml toplevel code).
- Alcotest: a lightweight and colourful test framework.
- OUnit: a unit test framework for OCaml based on HUnit, a unit testing framework for Haskell. It allows one to easily create unit-tests for OCaml code.
- QCheck: a property testing library inspired by Haskell’s QuickCheck.
- iTeML: formerly known as qtest, it supports inline pragmas to generate tests.
- Kaputt: a comprehensive testing framework.
- Pa_test: general inline testing macros.
- TestSimple: a lightweight unit testing framework compatible with the Test Anything Protocol.
- Cucumber.ml: Behavior Driven Development using Cucumber.
- qcstm:
State machine framework for testing imperative code.
Built on
QCheck
. Paper Video - Monolith: Specify the behavior of a program and perform random or fuzz testing on it automatically. Paper
Fuzzing
- Crowbar: Quickcheck tests + fuzzing courtesy of afl-fuzz.
- bun: Integrate fuzzing into your CI.
- Article about fuzzing with Crowbar, bun and afl-fuzz
- Monolith can also be used for fuzzing.