package alcotest

  1. Overview
  2. Docs
Legend:
Library
Module
Module type
Parameter
Class
Class type

A lightweight and colourful test framework.

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

Speed level for a test.

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.

exception Test_error

The exception return by run in case of errors.

val run : ?and_exit:bool -> 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.

Assert functions

module type TESTABLE = sig ... end
type 'a testable = (module TESTABLE with type t = 'a)

The type for testable values.

val bool : bool testable

bool tests booleans.

val int : int testable

int tests integers.

val char : char testable

char tests characters.

val string : string testable

string tests OCaml strings.

val list : 'a testable -> 'a list testable

list t tests lists of ts.

val slist : 'a testable -> ('a -> 'a -> int) -> 'a list testable

slist t comp tests sorted lists of ts. The list are sorted using comp.

val option : 'a testable -> 'a option testable

option t tests optional ts.

val result : 'a testable -> 'e testable -> ('a, 'e) Result.result testable

result t e tests ts on success and es on failure.

val pair : 'a testable -> 'b testable -> ('a * 'b) testable

pair a b tests pairs of as and bs.

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 check : 'a testable -> string -> 'a -> 'a -> unit

Check that two values are equal.

val fail : string -> 'a

Simply fail.

val check_raises : string -> exn -> (unit -> unit) -> unit

Check that an exception is raised.

Display

val line : Pervasives.out_channel -> ?color:[ `Blue | `Yellow ] -> char -> unit

@

  • deprecated

    you should write your own line function.