Интеграция C Catch unit test framework с CMake

#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.