module QCheck_runner:sig..end
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 QCheck_runner.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 errcode
which will run the tests, and exit the program. The error code
will be 0 if all tests pass, 1 otherwise.
QCheck_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 -> Random.State.tval verbose : unit -> boolval long_tests : unit -> boolval set_seed : int -> unitQCheck_runner.random_state by creating a new one, initialized with
the given seed.val set_verbose : bool -> unitverbose ()val set_long_tests : bool -> unitlong_tests ()val to_ounit_test : ?verbose:bool ->
?long:bool -> ?rand:Random.State.t -> QCheck.Test.t -> OUnit.testto_ounit_test ~rand t wraps t into a OUnit testverbose : used to print information on stdout (default: verbose())rand : the random generator to use (default: random_state ())val to_ounit_test_cell : ?verbose:bool ->
?long:bool -> ?rand:Random.State.t -> 'a QCheck.Test.cell -> OUnit.testQCheck_runner.to_ounit_test but with a polymorphic test cellval (>:::) : string -> QCheck.Test.t list -> OUnit.testOUnit.>::: but with a list of QCheck testsval to_ounit2_test : ?rand:Random.State.t -> QCheck.Test.t -> OUnit2.testto_ounit2_test ?rand t wraps t into a OUnit2 testrand : the random generator to use (default: a static seed for reproducibility),
can be overridden with "-seed" on the command-lineval to_ounit2_test_list : ?rand:Random.State.t -> QCheck.Test.t list -> OUnit2.test listto_ounit2_test_list ?rand t like to_ounit2_test but for a list of testsval run : ?argv:string array -> OUnit.test -> intrun test runs the test, and returns an error code that is 0
if all tests passed, 1 otherwise.
This is the default runner used by the comment-to-test generator.Arg.Bad in case argv contains unknown argumentsArg.Help in case argv contains "--help"
This test runner displays execution in a compact way, making it good for suites that have lots of tests.
Output example:
random seed: 101121210 random seed: 101121210 \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ Error: tests>error_raise_exn test `error_raise_exn` raised exception `QCheck_ounit_test.Error` on `0 (after 62 shrink steps)` Raised at file "example/QCheck_ounit_test.ml", line 19, characters 20-25 Called from file "src/QCheck.ml", line 846, characters 13-33 /////////////////////////////////////////////////////////////////////////////// \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ Failure: tests>fail_sort_id fail_sort_id /////////////////////////////////////////////////////////////////////////////// Ran: 4 tests in: 0.74 seconds. WARNING! SOME TESTS ARE NEITHER SUCCESSES NOR FAILURES!
argv : the command line arguments to parse parameters from (default Sys.argv)val run_tap : OUnit.test -> OUnit.test_resultsval run_tests : ?colors:bool ->
?verbose:bool ->
?long:bool ->
?out:Pervasives.out_channel ->
?rand:Random.State.t -> QCheck.Test.t list -> int0 if all tests passed, 1 otherwise.colors : if true, colorful outputverbose : if true, prints more information about test casesval run_tests_main : ?argv:string array -> QCheck.Test.t list -> 'aQCheck_runner.run_tests for actually running tests
after CLI options have been parsed.
The available options are:
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)