Я начинаю использовать GoogleTest. Кажется, что он нуждается в основной файл для запуска тестов:Как избежать смешивания тестового и производственного кода с помощью GoogleTest?
Separate test cases across multiple files in google test
Но в настоящее время в моем демо-приложения У меня уже есть основной файл:
src/
-> MyType.h
-> main.cpp
-> Makefile
который в конечном итоге будет мой «производство» заявление. Я не хочу загромождать, что с GTEST включает в себя, макросы и т.д.
Должен ли я просто создать еще один файл main.cpp в другую папку, например: test/
, которая будет содержать всю специфическую конфигурацию GTEST, так что я бы в конечном итоге с:
src/
-> MyType.h
-> main.cpp
-> Makefile // Makefile for producing production code/binaries
Test/
-> MyTypeTest.h // Unittest for MyType
-> main.cpp // The "Test runner"
-> Makefile // Makefile for producing test executable
EDIT:
Нашел на основе CMake:
http://www.kaizou.org/2014/11/gtest-cmake/
который, кажется, именно то, что я ищу.
Возможно, вы захотите переключиться на другую систему сборки до того, как ваш проект станет большим. Makefiles, как правило, действительно запутаны для больших проектов, если у вас уже нет большого опыта управления make-файлами. – smerlin
Я имею тенденцию настраивать поддиректорию тестов для каждого проекта/библиотеки и генерировать бинарный тест google для каждого тестового исходного файла. Таким образом, даже если один тестовый файл вызывает сбои приложения, все остальные тесты и тестовые теги будут выполняться. (Я использую 'CMake' как инструмент сборки и использую' ctest' для запуска всех тестов) – smerlin
Мне всегда нравилась идея тестов, живущих в отдельном каталоге. –