也许我漏掉了一些东西,但在我看来,为QtTest框架提供的唯一教程是让您测试QString类,这对我来说真的很愚蠢。
您自己编写的单元测试is....testing类的典型用例,但教程中没有提到如何在不同的项目中引用您的类进行测试,谷歌也让我失望了(我真的怀疑复制粘贴类是一种好的方法)。
我甚至翻了三本不同的Qt书,都没有提到QtTest。
发布于 2012-08-04 07:24:22
您可以将包含路径添加到.pro文件中的其他项目目录,如下所示:
INCLUDEPATH += <directory>然后,它应该能够找到您正在包含的标头。
编辑:基于注释的
这完全是另一回事了。未定义的引用通常意味着您缺少一个依赖项。这通常可以通过以下两种方法之一来解决。
最简单的方法是包含缺少的源文件:
INCLUDEPATH += ../myotherproject/
SOURCES = main.cpp ../myotherproject/missingsource.cpp也许更好的解决方案是通过将可重用代码编译为库并链接到它来公开代码。例如Windows上的.DLL或.LIB和Linux上的.SO或.A。
INCLUDEPATH += ../myotherproject/
win32:LIBS += ../myotherproject/linkme.lib你能向我们展示你得到的具体错误吗?
发布于 2012-08-12 11:58:16
我建议您将主应用程序项目和单元测试项目都需要的所有源代码和头文件放入一个.pri (.pro include)文件中。将此文件放入主项目中。然后在两个项目中都包含此文件。
请注意,每当向主项目添加新类时,QtCreator都会自动将SOURCES +=和HEADERS +=行附加到.pro文件中,但您希望它们位于.pri文件中,因此需要在以后手动移动它们。我认为没有解决方案来告诉QtCreator将它们放在哪里。
主项目:
myproject.pro
myproject.pri
main.cpp
someclass.h
someclass.cppmyproject.pro:
QT += ...
TARGET = ...
...
SOURCES += main.cpp # "private" to this project
include(myproject.pri) # needed in unit testmyproject.pri:
SOURCES += someclass.cpp
HEADERS += someclass.h单元测试项目:
unittest.pro
main.cpp
test.h
test.cppunittest.pro:
QT += ...
TARGET = ...
...
SOURCES += main.cpp test.cpp
HEADERS += test.h
# include the classes from the main project:
INCLUDEPATH += ../myproject/
include(../myproject/myproject.pri)https://stackoverflow.com/questions/11804038
复制相似问题