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 ++ с w.r.t. модульное тестирование или правильная структура проекта.

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …