cmake/Help/command/add_test.rst

83 lines
2.8 KiB
ReStructuredText
Raw Normal View History

2014-08-03 19:52:23 +02:00
add_test
--------
Add a test to the project to be run by :manual:`ctest(1)`.
2019-11-11 23:01:05 +01:00
.. code-block:: cmake
2014-08-03 19:52:23 +02:00
add_test(NAME <name> COMMAND <command> [<arg>...]
[CONFIGURATIONS <config>...]
2020-02-01 23:06:01 +01:00
[WORKING_DIRECTORY <dir>]
[COMMAND_EXPAND_LISTS])
2014-08-03 19:52:23 +02:00
2021-09-14 00:13:48 +02:00
Adds a test called ``<name>``. The test name may contain arbitrary
characters, expressed as a :ref:`Quoted Argument` or :ref:`Bracket Argument`
if necessary. See policy :policy:`CMP0110`. The options are:
2014-08-03 19:52:23 +02:00
``COMMAND``
Specify the test command-line. If ``<command>`` specifies an
executable target (created by :command:`add_executable`) it will
automatically be replaced by the location of the executable created
at build time.
``CONFIGURATIONS``
Restrict execution of the test only to the named configurations.
``WORKING_DIRECTORY``
Set the :prop_test:`WORKING_DIRECTORY` test property to
specify the working directory in which to execute the test.
If not specified the test will be run with the current working
directory set to the build directory corresponding to the
current source directory.
2020-02-01 23:06:01 +01:00
``COMMAND_EXPAND_LISTS``
2021-09-14 00:13:48 +02:00
.. versionadded:: 3.16
2020-02-01 23:06:01 +01:00
Lists in ``COMMAND`` arguments will be expanded, including those
created with
:manual:`generator expressions <cmake-generator-expressions(7)>`.
2015-11-17 17:22:37 +01:00
The given test command is expected to exit with code ``0`` to pass and
non-zero to fail, or vice-versa if the :prop_test:`WILL_FAIL` test
property is set. Any output written to stdout or stderr will be
captured by :manual:`ctest(1)` but does not affect the pass/fail status
2020-02-01 23:06:01 +01:00
unless the :prop_test:`PASS_REGULAR_EXPRESSION`,
:prop_test:`FAIL_REGULAR_EXPRESSION` or
:prop_test:`SKIP_REGULAR_EXPRESSION` test property is used.
2015-11-17 17:22:37 +01:00
2021-09-14 00:13:48 +02:00
.. versionadded:: 3.16
Added :prop_test:`SKIP_REGULAR_EXPRESSION` property.
2014-08-03 19:52:23 +02:00
The ``COMMAND`` and ``WORKING_DIRECTORY`` options may use "generator
expressions" with the syntax ``$<...>``. See the
:manual:`cmake-generator-expressions(7)` manual for available expressions.
2019-11-11 23:01:05 +01:00
Example usage:
.. code-block:: cmake
2014-08-03 19:52:23 +02:00
add_test(NAME mytest
2021-09-14 00:13:48 +02:00
COMMAND testDriver --config $<CONFIG>
2014-08-03 19:52:23 +02:00
--exe $<TARGET_FILE:myexe>)
This creates a test ``mytest`` whose command runs a ``testDriver`` tool
passing the configuration name and the full path to the executable
file produced by target ``myexe``.
.. note::
CMake will generate tests only if the :command:`enable_testing`
command has been invoked. The :module:`CTest` module invokes the
2019-11-11 23:01:05 +01:00
command automatically unless the ``BUILD_TESTING`` option is turned
``OFF``.
2014-08-03 19:52:23 +02:00
---------------------------------------------------------------------
2019-11-11 23:01:05 +01:00
.. code-block:: cmake
2014-08-03 19:52:23 +02:00
add_test(<name> <command> [<arg>...])
Add a test called ``<name>`` with the given command-line. Unlike
the above ``NAME`` signature no transformation is performed on the
command-line to support target names or generator expressions.