#c #unit-testing #visual-studio-2015 #cmake #catch-unit-test
#c #модульное тестирование #visual-studio-2015 #cmake #catch-модульный тест
Вопрос:
Я разрабатываю свое приложение с использованием Visual Studio 2015.
У меня есть 6 проектов, в решении которых 5 являются библиотеками, а один — исполняемым файлом.
Исполняемый проект содержит мои тестовые файлы, которые я использую Catch framework
для тестирования. Итак, у меня будет 5 cpp
файлов в исполняемом проекте. Как я могу запускать каждый тест один за другим с помощью CMake
?
add_test
функция CMake
принимает имя исполняемого файла в качестве команды и запускает все тесты одновременно. Мне нужно запустить каждый тест отдельно.
Ответ №1:
Вы можете добавить несколько add_test
вызовов с правильными параметрами командной строки.
В catch вы можете запустить определенный тест, добавив имя в двоичный файл.
tester <testName>
Таким образом, вы можете добавить их в качестве аргументов для add_test
вызова:
add_test(NAME mytest1 COMMAND tester test1 <...> )
add_test(NAME mytest2 COMMAND tester test2 <...> )
...
Затем вы можете выполнить один конкретный тест с
ctest -R mytest1
Это только коротышки mytest1
. -R также принимает регулярное выражение на случай, если вы хотите запустить несколько тестов.
Комментарии:
1. Это <testname> имя testcase или конкретного файла cpp?
2. @Jackzz да. более подробную информацию смотрите здесь: github.com/philsquared/Catch/blob/master/docs/command-line.md
3. Это не только название, но и «спецификация теста». вы увидите более подробную информацию об этом в документации catch.