У меня проблема с зависимостями в моем проекте модульного тестирования.
Моя структура проекта выглядит следующим образом:
MyProject
|---MyProject.pro
|---src
| |---src.pro
| |---ClassA.h
| |---ClassA.cpp
| |---ClassB.h
| |---ClassB.cpp
|
|---tests
|--tests.pro
|--testClassA.cpp
MyProject.pro:
TEMPLATE = subdirs
SUBDIRS = src tests
src.pro:
TEMPLATE = app
TARGET = someApp
HEADERS += classA.h classB.h
SOURCES += classA.cpp classB.cpp
Допустим, ClassA вызывает ClassB в ClassA.cpp:
void ClassA::someFunctionInClassA()
{
ClassB b;
}
Теперь я хочу провести модульное тестирование ClassA. Я нашел два способа сделать это.
Первый - преобразовать подпроект src в библиотеку (TARGET = lib в src.pro). Затем я добавляю следующую строку в tests.pro и все нормально:
LIBS += ../libSrc.so
Второй - назвать ВСЕ файлы, которые используются ClassA в test.pro. Это означает, что мой tests.pro выглядит так:
TARGET = testclassA
TEMPLATE = app
/*...*/
HEADERS += ../src/ClassA.h \
../src/ClassB.h
SOURCES += testClassA.cpp \
../src/ClassA.cpp \
../src/ClassB.cpp
Я не могу использовать первое решение (преобразование src-проекта в lib), поэтому я должен использовать второе. Действительно ли необходимо назвать все источники / заголовки, даже если я хочу протестировать только один из них?
Спасибо за совет!