首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >QtTest单元测试,如何添加位于另一个项目中的头文件?

QtTest单元测试,如何添加位于另一个项目中的头文件?
EN

Stack Overflow用户
提问于 2012-08-04 06:17:49
回答 2查看 6.4K关注 0票数 15

也许我漏掉了一些东西,但在我看来,为QtTest框架提供的唯一教程是让您测试QString类,这对我来说真的很愚蠢。

您自己编写的单元测试is....testing类的典型用例,但教程中没有提到如何在不同的项目中引用您的类进行测试,谷歌也让我失望了(我真的怀疑复制粘贴类是一种好的方法)。

我甚至翻了三本不同的Qt书,都没有提到QtTest。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-08-04 07:24:22

您可以将包含路径添加到.pro文件中的其他项目目录,如下所示:

代码语言:javascript
复制
INCLUDEPATH += <directory>

然后,它应该能够找到您正在包含的标头。

编辑:基于注释的

这完全是另一回事了。未定义的引用通常意味着您缺少一个依赖项。这通常可以通过以下两种方法之一来解决。

最简单的方法是包含缺少的源文件:

代码语言:javascript
复制
INCLUDEPATH += ../myotherproject/
SOURCES = main.cpp ../myotherproject/missingsource.cpp

也许更好的解决方案是通过将可重用代码编译为库并链接到它来公开代码。例如Windows上的.DLL或.LIB和Linux上的.SO或.A。

代码语言:javascript
复制
INCLUDEPATH += ../myotherproject/
win32:LIBS += ../myotherproject/linkme.lib

你能向我们展示你得到的具体错误吗?

票数 9
EN

Stack Overflow用户

发布于 2012-08-12 11:58:16

我建议您将主应用程序项目和单元测试项目都需要的所有源代码和头文件放入一个.pri (.pro include)文件中。将此文件放入主项目中。然后在两个项目中都包含此文件。

请注意,每当向主项目添加新类时,QtCreator都会自动将SOURCES +=HEADERS +=行附加到.pro文件中,但您希望它们位于.pri文件中,因此需要在以后手动移动它们。我认为没有解决方案来告诉QtCreator将它们放在哪里。

主项目:

代码语言:javascript
复制
myproject.pro
myproject.pri
main.cpp
someclass.h
someclass.cpp

myproject.pro:

代码语言:javascript
复制
QT += ...
TARGET = ...
...

SOURCES += main.cpp       # "private" to this project
include(myproject.pri)    # needed in unit test

myproject.pri:

代码语言:javascript
复制
SOURCES += someclass.cpp
HEADERS += someclass.h

单元测试项目:

代码语言:javascript
复制
unittest.pro
main.cpp
test.h
test.cpp

unittest.pro:

代码语言:javascript
复制
QT += ...
TARGET = ...
...

SOURCES += main.cpp test.cpp
HEADERS += test.h

# include the classes from the main project:
INCLUDEPATH += ../myproject/
include(../myproject/myproject.pri)
票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11804038

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档