Mavkit_alcotezt.Alcotest
Wrapper 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_case
Make a test case.
type 'a test = string * 'a test_case list
Tests.
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 ... end
val testable :
(Stdlib.Format.formatter -> 'a -> unit) ->
('a -> 'a -> bool) ->
'a testable
testable 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 -> bool
equal t
is t
's equality.
val unit : unit testable
The unit
testable type.
val string : string testable
The string
testable type.
val bool : bool testable
The boolean testable type.
val bytes : bytes testable
The bytes testable type.
val int64 : int64 testable
The int64 testable type.
val int32 : int32 testable
The int32 testable type.
val int : int testable
The int testable type.
val float : float -> float testable
The 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) -> return
Check that an exception is raised.
val failf : ('a, Stdlib.Format.formatter, return, 'b) Stdlib.format4 -> 'a
Fail the current test (format version).