Testing¶
This CMake module provides functions to interface gtest with ctest.
See also
-
¶
qi_create_test(name [SRC <src> ...] [DEPENDS <depends> ...] [TIMEOUT <timeout>] [WORKING_DIRECTORY <working_directory>] [NIGHTLY] [PERF] [ARGUMENTS <arguments> ...] [ENVIRONMENT <environment> ...] [<remaining args> ...] )
Arguments: - name – the name of the test and the target
- SRC – sources of the test
- DEPENDS – the dependencies of the test
- TIMEOUT – the timeout of the test, in seconds. Defaults to 20
- WORKING_DIRECTORY – working directory used when running the test: default:
<build>/sdk>/bin
- NIGHTLY – : only compiled (and thus run) if QI_WITH_NIGHTLY_TESTS is ON
- PERF – : only compiled (and thus run) if QI_WITH_PERF_TESTS is ON It is assumed that the executable will understand an option named “–output <out.xml>” and generate such a file. You can for instance use the qiperf library for that.
- ARGUMENTS – arguments to be passed to the executable
- ENVIRONMENT – list of environment variables for the tests, in the form “key1=value1;key2=value2”
- args (remaining) – source files (will be merged with the SRC group of arguments)
Create a new test that can be run by
qibuild test
- Notes:
- The test can be installed using
qibuild install --with-tests
- The name of the test will always be the name of the target.
- The test won’t be configured or built if QI_WITH_TESTS is OFF
- The test can be installed using
-
¶
qi_create_test_helper()
Add a test helper Create a binary that will not be run as a test, but rather used by an other test.
The helper can be installed along the proper tests using
qibuild install --with-tests
Arguments are the same as
qi_create_bin
-
¶
qi_create_test_lib()
Add a test library.
The library can be installed along the other tests binaries using
qibuild install --with-tests
Arguments are the same as
qi_create_lib
-
¶
qi_add_test()
- Add a test using an existing binary. Arguments are the same as
qi_create_test
- The
target_name
should match either: - a target
- a binary found by
find_program(${target_name})
- the name of a package defining
${${target_name}_EXECUTABLE}}
This can be used for instance to create several tests with one target:
qi_create_test_helper(test_foo test_foo.cpp) qi_add_test(test_foo_one test_foo ARGUMENTS --one) qi_add_test(test_foo_two test_foo ARGUMENTS --two)
-
¶
qi_create_gtest()
Same as
qi_create_test
, excepts it adds a dependency to the gtest libraries
-
¶
qi_create_gmock()
Same as
qi_create_test
, excepts it adds a dependency to thegmock
libraries
-
¶
qi_create_perf_test()
Shortcut for
qi_create_test(... PERF)