Legend:
Library
Module
Module type
Parameter
Class
Class type
Library
Module
Module type
Parameter
Class
Class type
Run Tezt regression tests and capture their output.
NOTE: consider using dune cram when it becomes available: https://dune.readthedocs.io/en/stable/tests.html#cram-tests
val register :
__FILE__:string ->
title:string ->
tags:string list ->
?file:string ->
(unit -> unit Lwt.t) ->
unit
Register a regression test.
This function is a wrapper around Test.register
. It adds the "regression" tag to the tags
list provided by the argument.
Output which is captured (with capture
) is recorded in a file named <ROOT>/<DIR>/expected/<BASE>/<FILE>.out
where:
<ROOT>
is the root directory of the project, read from environment variable DUNE_SOURCEROOT
if available, else PWD
if available, else using Sys.getcwd
;<DIR>
is Filename.dirname __FILE__
;<BASE>
is Filename.basename __FILE__
;<FILE>
is ~file
, which defaults to a sanitized and possibly truncated version of ~title
.Capture some output of a regression test.
Call this to record a string into the expected output file of the current test. A newline character \n
will be added after it.
This function only records its argument when called while a regression test is running, i.e. from the body of Regression.register
. If you call it outside of Regression.register
, it has no effect. So you can define a function that captures and use it with or without regression testing.
A typical use is to define custom process hooks that substitute non-deterministic parts of the output with deterministic ones. See also hooks
.
val hooks : Process_hooks.t