FindCxxTest
Модуль поиска фреймворка CxxTest для юнит-тестирования.
Ищет пакет CxxTest и объявляет вспомогательный макрос для создания юнит-тестов и их интеграции с CTest.
Переменные ввода
-
CXXTEST_USE_PYTHON -
Устарело начиная с версии 1.3.
Используется только в случае, если в системе обнаружены Python и Perl, для управления тем, какой генератор кода CxxTest используется. Действительно только для версии CxxTest 3.
В более старых версиях этого модуля поиска эта переменная контролировала, использовался ли генератор тестов на Python вместо Perl, независимо от того, какой скриптовый язык был установлен у пользователя.
-
CXXTEST_TESTGEN_ARGS -
Добавлена в версии 2.8.3.
Укажите список опций, которые необходимо передать генератору кода CxxTest. Если не определено, передаётся
--error-printer.
Переменные результата
-
CXXTEST_FOUND -
Истина, если фреймворк CxxTest был найден
-
CXXTEST_INCLUDE_DIRS -
Путь к каталогу заголовков CxxTest
-
CXXTEST_PERL_TESTGEN_EXECUTABLE -
Генератор тестов на Perl
-
CXXTEST_PYTHON_TESTGEN_EXECUTABLE -
Генератор тестов на Python
-
CXXTEST_TESTGEN_EXECUTABLE -
Добавлена в версии 2.8.3.
Генератор тестов, который фактически используется (выбранный с помощью пользовательских предпочтений и интерпретаторов, обнаруженных в системе)
-
CXXTEST_TESTGEN_INTERPRETER -
Добавлена в версии 2.8.3.
Полный путь к исполняемому файлу Perl или Python в системе, на платформах, где скрипт не может быть выполнен с помощью строки shebang.
Команды модуля
-
cxxtest_add_test -
Создаёт исполняемый файл CxxTest и добавляет его в набор тестов CTest:
CXXTEST_ADD_TEST(<test_name> <gen_source_file> <input_files_to_testgen>...)Параметры:
-
test_name -
Имя теста
-
gen_source_file -
Имя сгенерированного файла исходного кода, который будет сгенерирован CxxTest
-
input_files_to_testgen -
Список файлов заголовков, содержащих CxxTest::TestSuite, которые следует включить в этот исполняемый файл
-
Пример использования
Следующий пример, если CxxTest найден, выполнит:
- Вызов исполняемого файла testgen для автоматической генерации foo_test.cc в иерархии файлов из "foo_test.h" в текущем каталоге исходных файлов.
- Создаст исполняемый файл и тест под названием unittest_foo.
find_package(CxxTest)
if(CXXTEST_FOUND)
include_directories(${CXXTEST_INCLUDE_DIR})
enable_testing()
CXXTEST_ADD_TEST(unittest_foo foo_test.cc
${CMAKE_CURRENT_SOURCE_DIR}/foo_test.h)
target_link_libraries(unittest_foo foo) # as needed
endif()
foo_test.h содержит:
#include <cxxtest/TestSuite.h>
class MyTestSuite : public CxxTest::TestSuite
{
public:
void testAddition( void )
{
TS_ASSERT( 1 + 1 > 1 );
TS_ASSERT_EQUALS( 1 + 1, 2 );
}
};
© 2000–2024 Kitware, Inc. and Contributors
Licensed under the BSD 3-clause License.
https://cmake.org/cmake/help/v3.30/module/FindCxxTest.html