package alcotest-lwt

  1. Overview
  2. Docs
Lwt-based helpers for Alcotest

Install

Dune Dependency

Authors

Maintainers

Sources

alcotest-1.9.0.tbz
sha256=e2387136ca854df2b4152139dd4d4b3953a646e804948073dedfe0a232f08a15
sha512=ba38fe4a9061b001d274e5d41fb06c10c84120570fc00dc57dc5a06ba05176c2413295680d839f465ba91469ea99d7e172a324e26f005d6e8c4d98fca7657241

doc/alcotest-lwt/Alcotest_lwt/index.html

Module Alcotest_lwtSource

Alcotest_lwt enables testing functions which return an Lwt promise. run returns a promise that runs the tests when scheduled, catching any asynchronous exceptions thrown by the tests.

include Alcotest_engine.V1.Cli.S with type return = unit Lwt.t
Sourcetype return = unit Lwt.t

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.

Sourcetype speed_level = [
  1. | `Quick
  2. | `Slow
]

Speed level of a test. Tests marked as `Quick are always run. Tests marked as `Slow are skipped when the `-q` flag is passed.

Sourcetype '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).

Sourceexception Test_error

The exception return by run in case of errors.

Sourcetype 'a test = string * 'a test_case list

A 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.

Sourcetype 'a with_options = ?stdout:Alcotest_engine.Formatters.stdout -> ?stderr:Alcotest_engine.Formatters.stderr -> ?and_exit:bool -> ?verbose:bool -> ?compact:bool -> ?tail_errors:[ `Unlimited | `Limit of int ] -> ?quick_only:bool -> ?show_errors:bool -> ?json:bool -> ?filter:(name:string -> index:int -> [ `Run | `Skip ]) -> ?log_dir:string -> ?bail:bool -> ?record_backtrace:bool -> ?ci:[ `Github_actions | `Unknown | `Disabled ] -> 'a

The various options taken by the tests runners run and run_with_args:

  • stdout (default to Fmt.stdout). The formatter used to print on the standard output.
  • stderr (default to Fmt.stderr). The formatter used to print ont the standard error output.
  • and_exit (default true). Once the tests have completed, exit with return code 0 if all tests passed, otherwise 1.
  • verbose (default false). Display the test std.out and std.err (rather than redirecting to a log file).
  • compact (default false). Compact the output of the tests.
  • tail_errors (default unlimited). Show only the last N lines of output of failed tests.
  • quick_only (default false). Don't run tests with the `Slow speed level.
  • show_errors (default false). Display the test errors.
  • json (default false). Print test results in a JSON-compatible format.
  • filter. Filter tests according to ~name, the name of the test, and ~index, the number of the test case.
  • log_dir (default "$PWD/_build/_tests/"). The directory in which to log the output of the tests (if verbose is not set).
  • bail (default false). If true, stop running the tests after the first failure.
  • record_backtrace (default true). Enable backtrace recording before beginning testing.
  • ci (default auto-detected). Whether to enable specific logging for a CI system.
Sourceval 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.

Sourceval 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 Cmdliner term a: this is useful to configure the test behaviors using the CLI.

Sourceval test_case : string -> Alcotest.speed_level -> (Lwt_switch.t -> 'a -> unit Lwt.t) -> 'a test_case
Sourceval test_case_sync : string -> Alcotest.speed_level -> ('a -> unit) -> 'a test_case

Versioned APIs

Sourcemodule V1 : sig ... end

An alias of the above API that provides a stability guarantees over major version changes.

OCaml

Innovation. Community. Security.

On This Page
  1. Versioned APIs