我在搜索这个特定问题时发现了一些其他命中,但我无法使用我的设置来处理我的单元测试项目。
项目信息:(可选阅读)
我正处于最后一个本科项目的开始阶段 为Promula和the语言创建一个IDE 验证工具Spin。我正在这样做的教授期待 在他的班级和未来的本科生中使用它来不断改进。它也是一个每个人都可以贡献的开源项目。
我的文件夹结构:
QSpin
-QSpin.pro
-QSpinApplication
--QSpinapplication.pro
--QSpinApplication.pri
--include
---Workspace
----*.h
--src
---Workspace
----*.cpp
-QSpinApplicationTests
--QSpinApplicationTests.pro
--WorkspaceGroupTests
---WorkspaceGroupTests.pro
----some cpp testfile
我的QSpinApplication编译并运行没有任何问题。我可以导入我所拥有的东西。
#include <Workspace/(file_name).h>
但是在我的测试项目WorkspaceGroupTests中,我希望以相同的方式包含标题,但我无法使其工作。除此之外,我假设测试项目需要知道cpp文件的位置。如果我不使用任何应用程序头,测试项目将编译并运行默认测试用例。 目前我正在使用QSpin文件夹中的根文件夹进行默认阴影构建。
如何让我的测试项目正常工作,实际能够测试我的应用程序类?
QSpin.pro:
TEMPLATE = subdirs
CONFIG += ordered
SUBDIRS += \
QSpinApplication\QSpinApplication.pro \
QSpinApplicationTests
QSpinApplication.pro:
QT += quick qml gui
CONFIG += c++11
DEFINES += QT_DEPRECATED_WARNINGS
SOURCES +=src/main.cpp
include(QSpinApplication.pri)
RESOURCES += qml.qrc
qnx: target.path = /tmp/$${TARGET}/bin
else: unix:!android: target.path = /opt/$${TARGET}/bin
!isEmpty(target.path): INSTALLS += target
QSpinApplication.pri:
#//DEPENDPATH += $$PWD
INCLUDEPATH += ./include
SOURCES +=src/workspace/workspaceview.cpp \
src/workspace/groupitem.cpp \
src/workspace/groupitemsplitter.cpp \
src/workspace/workspacegroup.cpp \
src/workspace/workspaceviewattached.cpp \
src/workspace/workspaceviewiteminfo.cpp \
src/workspace/workspacegrouplinknode.cpp
HEADERS += \
include/workspace/workspaceview.h \
include/workspace/groupitem.h \
include/workspace/groupitemsplitter.h \
include/workspace/workspacegroup.h \
include/workspace/workspaceviewattached.h \
include/workspace/workspace.h \
include/workspace/workspaceviewiteminfo.h \
include/workspace/workspacegrouplinknode.h
QSpinApplicationTests.pro:
TEMPLATE = subdirs
SUBDIRS += \
WorkspaceGroupTests
WorkspaceGroupTests.pro:
QT += testlib
QT -= gui
DEPENDPATH+=./../../QSpinApplication
include(./../../QSpinApplication/QSpinApplication.pri)
CONFIG += qt console warn_on depend_includepath testcase
CONFIG -= app_bundle
TEMPLATE = app
SOURCES += tst_workspacegrouptests.cpp
答案 0 :(得分:1)
不确定我是否理解得很好,但总的来说,我建议的是为&#34; lib&#34;创建一个单独的结构。在哪里放置可以测试的逻辑代码,所以默认结构看起来像这样:
Integer
然后你输入你的lib.pro:
Structure:
├───app.pro
├───lib.pro
└───tests.pro
并添加test.pro和app.pro:
TARGET = NameOfTarget
TEMPLATE = lib
CONFIG += staticlib
最后,应该可以毫无问题地包含在app目录和测试中:
LIBS += -L../lib -lNameOfTarget
。