include Alcotest_engine.Cli.S with type return = unit
The return type of each test case run by Alcotest. For the standard Alcotest module, return = unit. The concurrent backends Alcotest_lwt and Alcotest_async set return = unit Lwt.t and return = Async_kernel.Deferred.t respectively.
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 a 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_casetest_case n s f is the test case n running at speed s using the function f.
type 'a test = string * 'a test_case listA test is a UTF-8 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 * Alcotest_engine.Core.IntSet.t option) -> ?log_dir:string -> 'aThe various options taken by the tests runners run and run_with_args:
and_exit(defaulttrue). Once the tests have completed, exit with return code0if 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`Slowspeed 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 (ifverboseis not set).
val run : (string -> unit test list -> return) with_optionsval run_with_args : (string -> 'a -> 'a test list -> return) with_optionsval run : (?argv:string array -> string -> unit test list -> return) with_optionsrun 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_optionsrun_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 Cmdliner term a: this is useful to configure the test behaviors using the CLI.
Assert functions
module type TESTABLE = sig ... endTESTABLE provides an abstract description for testable values.
testable pp eq is a new testable with the pretty-printer pp and equality eq.
val equal : 'a testable -> 'a -> 'a -> boolequal t is t's equality.
val bool : bool testablebool tests booleans.
val int : int testableint tests integers.
val int32 : int32 testableint32 tests 32-bit integers.
val int64 : int64 testableint64 tests 64-bit integers.
val float : float -> float testablefloat tests floats with specified absolute error.
val char : char testablechar tests characters.
val string : string testablestring tests OCaml strings.
val bytes : bytes testablebytes tests OCaml bytes.
val unit : unit testableunit tests unit values (useful for functions with side-effects).
slist t comp tests sorted lists of ts. The list are sorted using comp.
val result : 'a testable -> 'e testable -> ('a, 'e) Stdlib.result testableresult t e tests ts on success and es on failure.
of_pp pp tests values which can be printed using pp and compared using Pervasives.compare
val pass : 'a testablepass tests values of any type and always succeeds.
val reject : 'a testablereject tests values of any type and always fails.
val check : 'a testable -> string -> 'a -> 'a -> unitCheck that two values are equal.
val check' : 'a testable -> msg:string -> expected:'a -> actual:'a -> unitCheck that two values are equal (labeled variant of check).
val failf : ('a, Stdlib.Format.formatter, unit, 'b) Stdlib.format4 -> 'aSimply fail with a formatted message.
neg t is t's negation: it is true when t is false and it is false when t is true.
Unix-specific engine constructors
module Unix : Alcotest_engine.Platform.MAKER