Всем привет!
Есть программа из файлов:
- a.h,
- a.cpp,
- b.h,
- b.cpp,
- main.cpp.
Обычно, если это требуется, пишутся тесты для классов/функций в a, b. Раньше делал так: папку tests, туда:
- a_tests.h
- a_tests.cpp инклюдит a.cpp
- b_tests.h
- b_tests.cpp инклюдит b.cpp
отдельный main_tests.cpp.
В итоге папку tests можно собирать как отдельную программу и проверять, что все ОК.
Хочется таких разделений не делать и писать тесты прямо в a.cpp и b.cpp. Но при этом, как и прежде, получать в ходе сборки два исполняемых файла: один с main.cpp, а другой с main_tests.cpp.
Компилятор выкинет лишнее, при обычной сборке (с main.cpp)?
Или нужно об этом позаботиться?
Может у кого есть опыт, чтобы велосипед не изобретать?
Правильно ли я понимаю, что так можно и библиотеки тестить, а для покрытия кода тестами будет достаточно прикрутить gcov ?