module QCheck_base_runner:sig..end
Once you built some tests using QCheck2.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 QCheck_base_runner.run_tests in a test program as follows:
let testsuite = [
Test.make ...;
Test.make ...;
]
let () =
let errcode = QCheck_base_runner.run_tests ~verbose:true testsuite in
exit errcode
which will run the tests, and exit the program. The error code will be 0 if all tests pass, 1 otherwise.
QCheck_base_runner.run_tests_main can be used as a shortcut for that, also
featuring command-line parsing (using Arg) to activate
verbose mode and others.
val random_state : unit -> Stdlib.Random.State.tAccess the current random state
val verbose : unit -> boolIs the default mode verbose or quiet?
val long_tests : unit -> boolIs the default mode to run long tests or nor?
val set_seed : int -> unitChange the QCheck_base_runner.random_state by creating a new one, initialized with
the given seed.
val set_verbose : bool -> unitChange the value of verbose ()
val set_long_tests : bool -> unitChange the value of long_tests ()
val get_time_between_msg : unit -> floatGet the minimum time to wait between printing messages.
val set_time_between_msg : float -> unitSet the minimum tiem between messages.
type counter = private {
|
start : |
|
expected : |
|
mutable gen : |
|
mutable passed : |
|
mutable failed : |
|
mutable errored : |
}
The type of counter used to keep tracks of the events received for a given test cell.
type handler = {
|
handler : |
}
A type to represent polymorphic-enough handlers for test cells.
typehandler_gen =colors:bool ->
debug_shrink:Stdlib.out_channel option ->
debug_shrink_list:string list ->
size:int ->
out:Stdlib.out_channel ->
verbose:bool -> counter -> handler
An alias type to a generator of handlers for test cells.
val default_handler : handler_genThe default handler used.
val debug_shrinking_choices : colors:bool ->
out:Stdlib.out_channel ->
name:string -> 'a QCheck2.Test.cell -> step:int -> 'a -> unitThe function used by the default handler to debug shrinking choices. This can be useful to outside users trying to reproduce some of the base-runner behavior.
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 -> QCheck2.Test.t list -> intRun a suite of tests, and print its results. This is an heritage from the "qcheck" library.
0 if all tests passed, 1 otherwise.colors : if true (default), colorful outputverbose : if true, prints more information about test cases (default: false)long : if true, runs the long versions of the tests (default: false)debug_shrink : debug_shrink:(Some ch) writes a log of successful shrink
attempts to channel ch, for example ~debug_shrink:(Some (open_out "mylog.txt")).
Use together with a non-empty list in ~debug_shrink_list.debug_shrink_list : the test names to log successful shrink attempts for,
for example ~debug_shrink_list:["list_rev_is_involutive"].
Requires ~debug_shrink to be Some ch.out : print output to the provided channel (default: stdout)rand : start the test runner in the provided RNG stateval run_tests_main : ?argv:string array -> QCheck2.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 QCheck_base_runner.run_tests for actually running tests
after CLI options have been parsed.
The available options are:
Below is an example of the output of the run_tests and run_tests_main
function:
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
Utils for colored output
module Raw:sig..end
Internal Utils