package tezt
Install
Dune Dependency
Authors
Maintainers
Sources
md5=7878acd788ae59f1a07d0392644f0fff
sha512=b9e8ce2576b0bc65870409380edf17b88656a985ceb9a438a84f479b51d6b30740acf7b035eccf7d122bf5227611bf15e888e607dcdbb1576b4383f12314dd49
doc/tezt.core/Tezt_core/Regression/index.html
Module Tezt_core.Regression
Source
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 variableDUNE_SOURCEROOT
if available, elsePWD
if available, else usingSys.getcwd
;<DIR>
isFilename.dirname __FILE__
;<BASE>
isFilename.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 if eol
is true
(which is the default).
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
.