Module QCheck_base_runner
Runners for Tests
Once you built some tests using QCheck.Test.make, you need to run the tests. This module contains several runners, which are designed to run every test and report the result.
By default, you can use run_tests in a test program as follows:
let testsuite = [
Test.make ...;
Test.make ...;
]
let () =
let errcode = QCheck_runners.run_tests ~verbose:true testsuite in
exit errcodewhich will run the tests, and exit the program. The error code will be 0 if all tests pass, 1 otherwise.
run_tests_main can be used as a shortcut for that, also featuring command-line parsing (using Arg) to activate verbose mode and others.
State
val set_seed : int -> unitChange the
random_stateby creating a new one, initialized with the given seed.
Event handlers
type counter= private{start : float;expected : int;mutable gen : int;mutable passed : int;mutable failed : int;mutable errored : int;}The type of counter used to keep tracks of the events received for a given test cell.
type handler={handler : a. 'a QCheck.Test.handler;}A type to represent polymorphic-enough handlers for test cells.
type handler_gen= colors:bool -> debug_shrink:Stdlib.out_channel option -> debug_shrink_list:string list -> size:int -> out:Stdlib.out_channel -> verbose:bool -> counter -> handlerAn alias type to a generator of handlers for test cells.
val default_handler : handler_genThe default handler used.
Run a Suite of Tests and Get Results
val run_tests : ?handler:handler_gen -> ?colors:bool -> ?verbose:bool -> ?long:bool -> ?debug_shrink:Stdlib.out_channel option -> ?debug_shrink_list:string list -> ?out:Stdlib.out_channel -> ?rand:Stdlib.Random.State.t -> QCheck.Test.t list -> intRun a suite of tests, and print its results. This is an heritage from the "qcheck" library.
- returns
an error code,
0if all tests passed,1otherwise.
- parameter colors
if true, colorful output
- parameter verbose
if true, prints more information about test cases
val run_tests_main : ?argv:string array -> QCheck.Test.t list -> 'aCan be used as the main function of a test file. Exits with a non-0 code if the tests fail. It refers to
run_testsfor actually running tests after CLI options have been parsed.The available options are:
- "--verbose" (or "-v") for activating verbose tests
- "--seed <n>" (or "-s <n>") for repeating a previous run by setting the random seed
- "--long" for running the long versions of the tests
Below is an example of the output of the
run_testsandrun_tests_mainfunction:random seed: 438308050 generated error; fail; pass / total - time -- test name [✓] (1000) 0 ; 0 ; 1000 / 1000 -- 0.5s -- list_rev_is_involutive [✗] ( 1) 0 ; 1 ; 0 / 10 -- 0.0s -- should_fail_sort_id [✗] ( 1) 1 ; 0 ; 0 / 10 -- 0.0s -- should_error_raise_exn [✓] (1000) 0 ; 0 ; 1000 / 1000 -- 0.0s -- collect_results --- Failure -------------------------------------------------------------------- Test should_fail_sort_id failed (11 shrink steps): [1; 0] === Error ====================================================================== Test should_error_raise_exn errored on (62 shrink steps): 0 exception QCheck_runner_test.Error Raised at file "example/QCheck_runner_test.ml", line 20, characters 20-25 Called from file "src/QCheck.ml", line 839, characters 13-33 +++ Collect ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Collect results for test collect_results: 4: 207 cases 3: 190 cases 2: 219 cases 1: 196 cases 0: 188 cases ================================================================================ failure (1 tests failed, 1 tests errored, ran 4 tests)
module Color : sig ... end
module Raw : sig ... end