TEST.EXE(1)                     Test.exe Manual                    TEST.EXE(1)

NAME
       test.exe - run tests for my_project

SYNOPSIS
       test.exe [COMMAND] …

DESCRIPTION
       This is the program built for running and managing the tests for this
       project, my_project. It revolves around 3 main subcommands: 'run',
       'status', and 'approve'. Use the 'status' subcommand to check the
       status of each test without having to re-run them. 'approve' must be
       used on tests whose output is captured so as to make their latest
       output the new reference.

       This test program was configured to store the temporary results in
       "_build/testo/status" and the expected test output in the persistent
       folder "tests/snapshots". The latter should be kept under version
       control (git or similar).

       Visit https://testocaml.net/ to learn how to create and manage test
       suites with Testo.

COMMANDS
       approve [OPTION]…
           approve new test output

       run [OPTION]…
           run the tests

       show-tags [OPTION]…
           show the list of valid tags for this test suite

       status [OPTION]…
           show test status

OPTIONS
       --autoclean
           Remove test snapshots that don't match any test.

       -C DIR, --chdir=DIR
           Change the current working directory to DIR before doing any work.

       --debug
           Log information that can be useful for debugging the Testo library.

       -e KEY=VALUE, --env=KEY=VALUE
           Pass  a key/value pair to the function that creates the test suite.
           KEY   must   be   an   alphanumeric   identifier   of   the    form
           [A-Za-z_][A-Za-z_0-9]*. VALUE can be any string. This mechanism for
           passing  arbitrary runtime settings to the test suite is offered as
           a safer alternative to  environment  variables.  Multiple  -e/--env
           options  are  supported  in  the  same  command,  each defining one
           key/value pair.

       --expert
           Assume the user is familiar with Testo and don't show non-essential
           messages or tips targeted at new users.

       -j NUM, --jobs=NUM
           Specify the number of jobs to run in  parallel.  By  default,  this
           value  is  set  to the number of CPUs detected on the machine. Both
           '-j0' and '-j1' ensure sequential, non-overlapping execution of the
           tests. Unlike '-j1',  '-j0'  will  not  create  a  separate  worker
           process  to  run  the  tests. The default can be changed by passing
           '~default_workers' to the  OCaml  function  'Testo.interpret_argv'.
           NOTE: Parallel executation of tests is not stable on Windows.

       --lazy
           Run only the tests that were not previously successful.

       --max-inline-log-bytes=LIMIT (absent=1000000)
           When  displaying  logs (unchecked stdout or stderr output), show at
           most that many bytes for each test. The default  limit  is  1000000
           bytes. To remove the default limit, specify 'unlimited'.

       -s SUBSTRING, --filter-substring=SUBSTRING
           Select  tests  whose  description contains SUBSTRING. Multiple '-s'
           search queries can be specified in which  case  only  one  of  them
           needs to match.

       --slice=NUM/NUM_SLICES
           Divide  the  test  suite into NUM_SLICES and work on slice NUM only
           (1-based). For example, '1/4' is the first of four slices and '4/4'
           is the last one. If multiple '--slice' options are specified,  they
           are  applied sequentially from left to right. If the original suite
           defines 23 tests,  '--slice  2/4'  selects  tests  [7,8,9,10,11,12]
           (1-based).  If  additionally '--slice 1/3' is specified after it on
           the same command line, the remaining  tests  will  be  [7,8].  This
           filter  is  meant  for  running  tests in parallel, possibly across
           multiple hosts. It is applied after any  other  filters  to  as  to
           divide the work more evenly.

       --stack-backtrace
           Show  the  full stack backtrace when a test raises an exception. By
           default, only the first 5 lines of the backtrace are shown.

       --strict
           Treat flaky tests as ordinary  tests.  This  disables  the  default
           behavior of ignoring failing tests that were marked as flaky by the
           programmer when determining the overall success of the test run.

       -t QUERY, --filter-tag=QUERY
           Select  tests whose tags match QUERY. Filtering by tag is generally
           more robust than selecting tests by text contained  in  their  name
           with  '-s'.  QUERY  is  a  boolean query combining tags with 'and',
           'or', 'not', and parentheses  using  the  usual  precedence  rules.
           Tag-like  selectors  'all'  and  'none'  are  also  supported.  For
           example, '(foo or bar) and not e2e' will select any test  with  the
           tag  'foo'  or  the  tag 'bar' but not if it has the tag 'e2e'. Run
           '/home/martin/testo/_build/default/template/tests/test.exe
           show-tags' to see the list of tags defined  for  the  current  test
           suite.

       --test-list-checksum=STR
           Internal  use  only. This is a checksum used to check that the list
           of tests generated in a worker is the same as  the  list  of  tests
           generated by the master.

       -v, --verbose
           Print   more  details  than  by  default.  This  is  equivalent  to
           '--show-output --stack-backtrace'.

       -w, --show-output
           Show the output of all tests rather than only showing the output of
           the failed tests. This excludes  the  output  (stdout,  stderr,  or
           both)  that  may  be  captured  explicitly  to  be compared against
           expectations.

       --worker
           Internal option used to launch a parallel worker.

COMMON OPTIONS
       --help[=FMT] (default=auto)
           Show this help in format FMT. The value FMT must be  one  of  auto,
           pager,  groff  or  plain.  With  auto, the format is pager or plain
           whenever the TERM env var is dumb or undefined.

EXIT STATUS
       test.exe exits with:

       0   on success.

       123 on indiscriminate errors reported on standard error.

       124 on command line parsing errors.

       125 on unexpected internal errors (bugs).

Test.exe                                                           TEST.EXE(1)