Я пытаюсь заставить CMake обнаруживать тесты при фактическом вызове, а не во время сборки, используя генератор Ninja Multi-Config. Сначала я думал, что установка DISCOVERY_MODE на PRE_TEST в gtest_discover_tests должна решить эту проблему, но, видимо, нет.
Вот минимальный воспроизводимый пример. Нам нужны следующие файлы:
Запуск mytest работает напрямую (он показывает неудачный подтест ParamTestSuite/ParamTest.Test1/1), но с помощью CTest новый тест не обнаруживается и не выполнен (выполняется только один подтест). Можно ли это решить?
Я пытаюсь заставить CMake обнаруживать тесты при фактическом вызове, а не во время сборки, используя генератор Ninja Multi-Config. Сначала я думал, что установка DISCOVERY_MODE на PRE_TEST в gtest_discover_tests должна решить эту проблему, но, видимо, нет. Вот минимальный воспроизводимый пример. Нам нужны следующие файлы: [list] [*][code]CMakeLists.txt[/code] [code] cmake_minimum_required(VERSION 3.24) project(dynamic_gtests CXX)
[/list] Теперь я выполняю следующие команды: [code]mkdir data echo 42 > data/answer.txt cmake --preset default cmake --build --preset default ctest --preset default [/code] Тест пройден успешно. После этого давайте создадим новый файл данных для этого теста и попробуем его запустить: [code]echo 43 > data/incorrect.txt ./build/Debug/mytest cmake --build --preset default ctest --preset default [/code] Запуск mytest работает напрямую (он показывает неудачный подтест ParamTestSuite/ParamTest.Test1/1), но с помощью CTest новый тест не обнаруживается и не выполнен (выполняется только один подтест). Можно ли это решить?