Package index
doc
Library ounit2
OUnit
Module
Unit test building blocks
AssertionsAssertions are the basic building blocks of unittests.
Source val assert_failure : string -> 'a Signals a failure. This will raise an exception with the specified string.
Source val assert_bool : string -> bool -> unitSignals a failure when bool is false. The string identifies the failure.
Source val (@?) : string -> bool -> unitShorthand for assert_bool
Source val assert_string : string -> unitSignals a failure when the string is non-empty. The string identifies the failure.
Source val assert_command :
?exit_code :Unix.process_status ->
?sinput :char Seq.t ->
?foutput :(char Seq.t -> unit) ->
?use_stderr :bool ->
?env :string array ->
?verbose :bool ->
string ->
string list ->
unitassert_command prg args Run the command provided.
Source val assert_equal :
?cmp :('a -> 'a -> bool) ->
?printer :('a -> string) ->
?pp_diff :(Format.formatter -> ('a * 'a ) -> unit) ->
?msg :string ->
'a ->
'a ->
unitassert_equal expected real Compares two values, when they are not equal a failure is signaled.
Source val assert_raises : ?msg :string -> exn -> (unit -> 'a ) -> unitAsserts if the expected exception was raised.
Skipping testsIn certain condition test can be written but there is no point running it, because they are not significant (missing OS features for example). In this case this is not a failure nor a success. Following functions allow you to escape test, just as assertion but without the same error status.
A test skipped is counted as success. A test todo is counted as failure.
Source val skip_if : bool -> string -> unitskip cond msg If cond is true, skip the test for the reason explain in msg. For example skip_if (Sys.os_type = "Win32") "Test a doesn't run on windows".
Source val todo : string -> unitThe associated test is still to be done, for the reason given.
Compare FunctionsSource val cmp_float : ?epsilon :float -> float -> float -> boolCompare floats up to a given relative error.
BracketA bracket is a functional implementation of the commonly used setUp and tearDown feature in unittests. It can be used like this:
"MyTestCase" >:: (bracket test_set_up test_fun test_tear_down)
Source val bracket : (unit -> 'a ) -> ('a -> unit) -> ('a -> unit) -> unit -> unitbracket set_up test tear_down The set_up function runs first, then the test function runs and at the end tear_down runs. The tear_down function runs even if the test failed and help to clean the environment.
Source val bracket_tmpfile :
?prefix :string ->
?suffix :string ->
?mode :open_flag list ->
((string * out_channel ) -> unit) ->
unit ->
unitbracket_tmpfile test The test function takes a temporary filename and matching output channel as arguments. The temporary file is created before the test and removed after the test.
Constructing TestsSource type test_fun = unit -> unit The type of test function
Create a TestLabel for a test
Create a TestLabel for a TestCase
Create a TestLabel for a TestList
Some shorthands which allows easy test construction.
Examples:
"test1" >: TestCase((fun _ -> ())) => TestLabel("test2", TestCase((fun _ -> ())))"test2" >:: (fun _ -> ()) => TestLabel("test2", TestCase((fun _ -> ())))"test-suite" >::: ["test2" >:: (fun _ -> ());] => TestLabel("test-suite", TestSuite([TestLabel("test2", TestCase((fun _ -> ())))]))test_decorate g tst Apply g to test function contains in tst tree.
Source val test_filter : ?skip :bool -> string list -> test -> test optiontest_filter paths tst Filter test based on their path string representation.
Returns the number of available test cases
Source type node = | ListItem of int| Label of stringTypes which represent the path of a test
The path to the test (in reverse order).
Make a string from a node
Make a string from a path. The path will be reversed before it is translated into a string
Returns a list with paths of the test
Source type test_result = | RSuccess of path | RFailure of path * string| RError of path * string| RSkip of path * string| RTodo of path * stringThe possible results of a test
Events which occur during a test run.
Perform the test, allows you to build your own test runner
A simple text based test runner.
Source val run_test_tt_main :
?arg_specs :(Arg.key * Arg.spec * Arg.doc ) list ->
?set_verbose :(bool -> unit) ->
test ->
test_results Main version of the text based test runner. It reads the supplied command line arguments to set the verbose level and limit the number of test to run.