C++/catch2: ссылочный код из отдельного тестового каталога

Прежде чем пытаться выполнить какое-либо модульное тестирование, у меня был каталог

mything.h
mything.cpp
mything2.h
mything2.cpp
driver.cpp  // contains main()
Makefile

Тогда я бы make и запустить созданный исполняемый файл; этот исполняемый файл был создан в корневом каталоге (назовите его runme).

Теперь я пытаюсь использовать Catch2 https://github.com/catchorg/Catch2/blob/master/docs/Readme.md#top), который также говорит, что у него есть один тестовый файл с основным (у них есть определение для него)). Поэтому я реорганизовал свой код как

src/
  mything.h
  mything.cpp
  mything2.h
  mything2.cpp
  driver.cpp  // contains main()
test/
  catch2.hpp // downloaded off their website in single header option
  sometest.cpp // also contains a main per catch2
Makefile

Я сделал несколько фиктивных тестов, которые не ссылаются на мой настоящий код. Сейчас делаю make tester а также ./tester который запускает все тесты. И я могу сделать make а также ./runme запустить мое оригинальное приложение.

Теперь у меня вопрос: как мне на самом деле вызвать исходный код из тестового кода? Нужно ли конвертировать это src реж в библиотеку? То есть, как тестовый код ссылается на код src в C++, мне немного непонятно.

Для полного раскрытия я пришел из мира python / pytest, и мне интересно, как вы на самом деле структурируете код C++ с модульным тестированием или с правильной структурой проекта.

0 ответов

Другие вопросы по тегам