我使用这种方法: http: //xilexio.org/ ?p=125
即,将test
配置放在构建所有内容的单个.pro
文件中。文件层次结构:
myproject.pro
src/
Example1.cpp
Example2.cpp
Example1.h
Example2.h
test/
ExampleTest.cpp
ExampleTest.h
myproject.pro
文件:
QT += #needed modules
CONFIG += qt c++11
HEADERS += \
src/Example1.h \
src/Example2.h
SOURCES += \
src/Example1.h \
src/Example2.h
test{
message(Configuring test build...)
TEMPLATE = app
TARGET = myapptests
QT += testlib
HEADERS += \
test/ExampleTest.h
SOURCES += \
test/ExampleTest.cpp
}
else{
TEMPLATE = lib
TARGET = myapp
CONFIG += plugin
TARGET = $$qtLibraryTarget($$TARGET)
}
在我的示例中,我正在构建一个插件库,但该方法也应该适用于应用程序。在应用程序的情况下,SOURCES -= src/main.cpp
该子句可能需要它else
,插件库没有它。如果不这样做,应用程序的 将与单元测试的main()
冲突。main()
ExampleTest.cpp
如下所示:
#include "ExampleTest.h"
void ExampleTest::exampleTest(){
//Do the tests
}
QTEST_MAIN(ExampleTest)
ExampleTest.h
如下所示:
#include <QtTest/QtTest>
class ExampleTest : public QObject {
Q_OBJECT
private slots:
void exampleTest();
};
要构建项目测试,请在与常规构建不同的目录中运行:
qmake path/to/myproject.pro "CONFIG += test"