Прежде чем пытаться выполнить какое-либо модульное тестирование, у меня был каталог
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. модульное тестирование или правильная структура проекта.
Задача ещё не решена.
Других решений пока нет …