package alcotest
Library
Module
Module type
Parameter
Class
Class type
include Core.S
Speed level of a test. Tests marked as `Quick
are always run. Tests marked as `Slow
are skipped when the `-q` flag is passed.
type 'a test_case = string * speed_level * ('a -> return)
A test case is an UTF-8 encoded documentation string, a speed level and a function to execute. Typically, the testing function calls the helper functions provided below (such as check
and fail
).
The exception return by run
in case of errors.
val test_case : string -> speed_level -> ('a -> return) -> 'a test_case
test_case n s f
is the test case n
running at speed s
using the function f
.
type 'a test = string * 'a test_case list
A test is an US-ASCII encoded name and a list of test cases. The name can be used for filtering which tests to run on the CLI
type 'a with_options =
?and_exit:bool ->
?verbose:bool ->
?compact:bool ->
?tail_errors:[ `Unlimited | `Limit of int ] ->
?quick_only:bool ->
?show_errors:bool ->
?json:bool ->
?filter:(Re.re option * Core.IntSet.t option) ->
?log_dir:string ->
'a
The various options taken by the tests runners run
and run_with_args
:
and_exit
(defaulttrue
). Once the tests have completed, exit with return code0
if all tests passed, otherwise1
.verbose
(defaultfalse
). Display the test std.out and std.err (rather than redirecting to a log file).compact
(defaultfalse
). Compact the output of the tests.tail_errors
(default unlimited). Show only the last N lines of output of failed tests.quick_only
(defaultfalse
). Don't run tests with the`Slow
speed level.show_errors
(defaultfalse
). Display the test errors.json
(defaultfalse
). Print test results in a JSON-compatible format.log_dir
(default "$PWD/_build/_tests/"). The directory in which to log the output of the tests (ifverbose
is not set).
val run :
(?argv:string array -> string -> unit test list -> return) with_options
run n t
runs the test suite t
. n
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 command line arguments sent to alcotest like "--json"
, "--verbose"
, etc. Note that this array will be treated like a regular Sys.argv
, so the array must have at least one element, and the first element will be treated as if it was the command name and thus ignored for the purposes of option processing. So ~argv:[||]
is an error, ~argv:[| "--verbose" |]
will have no effect, and ~argv:[|
"ignored"; "--verbose" |]
will successfully pass the verbose option.
val run_with_args :
(?argv:string array ->
string ->
'a Cmdliner.Term.t ->
'a test list ->
return)
with_options
run_with_args n a t
Similar to run a t
but take an extra argument a
. Every test function will receive as argument the evaluation of the Cdmliner
term a
: this is useful to configure the test behaviors using the CLI.