Mavkit_alcotezt.AlcotestWrapper to run Alcotest tests with Tezt as a backend.
This module provides a subset of the interface of the Alcotest module of the real Alcotest library. But instead of using Alcotest to run the tests, it uses Tezt. This allows to transition from Alcotest to Tezt without having to actually change the code. In turn, this allows to benefit from Tezt features such as auto-balancing in the CI. One can then use Tezt's modules in the test, to gradually migrate the test to Tezt and stop using this wrapper.
This module is intended as a way to help transition from Alcotest to Tezt, not to use both at the same time forever. First use Alcotezt to have the test runnable using Tezt, as a quick win to get auto-balancing etc. Then stop using Alcotest functions and migrate existing calls at the pace that is convenient for you.
Speed levels.
In Alcotest, one can ask not to run slow tests with -q from the command-line. In Tezt, the equivalent is quick.
Tests registered with `Slow or `Quick will have respectively the tag "slow" or "quick". "slow" tag may have consequences on how the test will be handled by the CI. More information is given in src/lib_test/tag.mli.
type 'a test_case = string * speed_level * ('a -> return)Test cases.
The name of the Alcotest test case appears in Tezt's logs, but it is not used in the Tezt test title, nor as a tag.
val test_case : string -> speed_level -> ('a -> return) -> 'a test_caseMake a test case.
type 'a test = string * 'a test_case listTests.
In Tezt, the name of the test is used as the title of the test.
Run a test suite.
In Tezt, this calls Test.register but does not actually run the test suite. The name of the test suite is used as the filename for the Tezt test.
module type TESTABLE = sig ... endval testable :
(Stdlib.Format.formatter -> 'a -> unit) ->
('a -> 'a -> bool) ->
'a testabletestable pp eq is a new testable with the pretty-printer pp and equality eq.
of_pp pp tests values which can be printed using pp and compared using Stdlib.compare
val equal : 'a testable -> 'a -> 'a -> boolequal t is t's equality.
val unit : unit testableThe unit testable type.
val string : string testableThe string testable type.
val bool : bool testableThe boolean testable type.
val bytes : bytes testableThe bytes testable type.
val int64 : int64 testableThe int64 testable type.
val int32 : int32 testableThe int32 testable type.
val int : int testableThe int testable type.
val float : float -> float testableThe float testable type.
The triple testable type.
Check that two values are equal.
In Tezt, this becomes Check.(=) where ~error_msg is msg ^ ": expected %L, got %R" where msg is the string given to check.
Check that two values are equal (labeled variant of check).
val check_raises : string -> exn -> (unit -> unit) -> returnCheck that an exception is raised.
val failf : ('a, Stdlib.Format.formatter, return, 'b) Stdlib.format4 -> 'aFail the current test (format version).