cmopts_setup_test#
This function is intended as a convenience entry point for functionality, which is solely related to tests part of the CMake project, provided by cmopts module.
cmopts_setup_test(<target>
                  NAME <name>
                  <BENCHMARKS        |
                   UNIT_TESTS        |
                   COMPONENT_TESTS   |
                   INTEGRATION_TESTS |
                   SYSTEM_TESTS      >)
Arguments#
Adds a test called <name>.
The test name may contain arbitrary characters, expressed as a Quoted Argument or Bracket Argument if necessary.
See policy CMP0110.
The named <target> must have been created by a add_executable command.
The category must be one of the predefined values, which determines the type of the given test. There are available following test categories:
- BENCHMARKS
- Formal definition: https://en.wikipedia.org/wiki/Benchmark_(computing) - These kind of tests aims to test performance of a specific part of the project code. 
- UNIT_TESTS
- Formal definition: https://en.wikipedia.org/wiki/Unit_testing. - These kind of tests ensure that a single unit of code (a method) works as expected (given an input, it has a predictable output). These tests should be isolated as much as possible. 
- COMPONENT_TESTS
- Formal definition: https://en.wikipedia.org/wiki/Black-box_testing. - These kind of tests treats a component as a black-box and ensure that it works as expected. These tests should be isolated as much as possible. 
- INTEGRATION_TESTS
- Formal definition: https://en.wikipedia.org/wiki/Integration_testing. - These kind of tests ensure that individual parts of the application work well together, without the overhead of the actual app environment (such as GUI). 
- SYSTEM_TESTS
- Formal definition: https://en.wikipedia.org/wiki/System_testing. - These kind of tests ensure that the application works as expected, with or without the overhead of the actual app environment (such as GUI). 
Examples#
Apply common test target options and mark test(s) with a specific label:
cmopts_setup_test(target1
  NAME
    "Target1::Benchmarks"
  BENCHMARKS
)
Run all tests:
ctest
Run all tests that are a part of specific category:
ctest -L "^BENCHMARKS$" -T memcheck
Or run all tests except benchmarks:
ctest -LE "^BENCHMARKS$" -T memcheck
ctest -L "_TESTS$" -T memcheck