我的单元测试项目中的依赖项有问题。
我的项目结构如下:
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 在 ClassA.cpp 中调用 ClassB:
void ClassA::someFunctionInClassA()
{
ClassB b;
}
现在我想对 ClassA 进行单元测试。我找到了两种方法。第一个是将 src-Subproject 转换为库(TARGET = lib in src.pro)。然后我将以下行添加到 tests.pro 中,一切正常:
LIBS += ../libSrc.so
第二个是命名 test.pro 中 ClassA 使用的所有文件。这意味着我的 tests.pro 看起来像:
TARGET = testclassA
TEMPLATE = app
/*...*/
HEADERS += ../src/ClassA.h \
../src/ClassB.h
SOURCES += testClassA.cpp \
../src/ClassA.cpp \
../src/ClassB.cpp
我不能使用第一个解决方案(将 src-project 转换为 lib),所以我必须使用第二个。即使我只想测试其中一个,是否真的有必要命名所有源/标题?谢谢指教!