Library
Module
Module type
Parameter
Class
Class type
A lightweight and colourful test framework.
Alcotest
provides a simple interface to perform unit tests. It exposes a simple TESTABLE module type, a check function to assert test predicates and a run function to perform a list of unit -> unit
test callbacks.
From these descriptions, Alcotest
builds a quiet and colorful output where only faulty runs are fully displayed at the end of the run (with the full logs ready to inspect), with a simple (yet expressive) query language to select the tests to run.
Release 0.6.0
type test_case = string * speed_level * (unit -> unit)
A test case is an UTF-8 encoded documentation string, a speed level and a function to execute.
type test = string * test_case list
A test is an US-ASCII encoded name and a list of test cases.
The exception return by run
in case of errors.
val run : ?and_exit:bool -> ?argv:string array -> string -> test list -> unit
run n t
runs the test suite t
. n
is is the name of the tested library. The optional argument and_exit
controls what happens when the function ends. By default, and_exit
is set, which makes the function exit with 0
if everything is fine or 1
if there is an issue. If and_exit
is false
, then the function raises Test_error
on error. The optional argument argv
specifies the argument sent to alcotest like "--json"
, "--verbose"
, etc. (at least one argument is required).
module type TESTABLE = sig ... end
TESTABLE
provides an abstract description for testable values.
val bool : bool testable
bool
tests booleans.
val int : int testable
int
tests integers.
val int32 : int32 testable
int32
tests 32-bit integers.
val int64 : int64 testable
int64
tests 64-bit integers.
val float : float testable
float
tests floats.
val char : char testable
char
tests characters.
val string : string testable
string
tests OCaml strings.
slist t comp
tests sorted lists of t
s. The list are sorted using comp
.
val result : 'a testable -> 'e testable -> ('a, 'e) Result.result testable
result t e
tests t
s on success and e
s on failure.
val of_pp : (Format.formatter -> 'a -> unit) -> 'a testable
of_pp pp
tests values which can be printed using pp
and compared using Pervasives.compare
val pass : 'a testable
pass
tests values of any type and always succeeds.
val reject : 'a testable
reject
tests values of any type and always fails.
val check : 'a testable -> string -> 'a -> 'a -> unit
Check that two values are equal.
val line : Pervasives.out_channel -> ?color:[ `Blue | `Yellow ] -> char -> unit