我只是不明白带有程序和测试的Qt项目的整体布局是什么......
QTest教程的项目只有测试程序,但我的项目已经有另一个程序。如果我添加测试用例,它声称“main() 的多个定义”,因为QTEST_MAIN实际上是另一个main()。
另外,我的测试课上出现“未定义的 vtable 引用”,不知道为什么..
我正在使用 Qt 5.2.1
这是我的项目文件:
#-------------------------------------------------
#
# Project created by QtCreator 2014-06-06T13:42:19
#
#-------------------------------------------------
QT += core gui testlib
CONFIG += testcase
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
TARGET = GutMiner
TEMPLATE = app
LIBS += -lquazip
SOURCES += main.cpp\
mainwindow.cpp \
dataform.cpp \
datavec.cpp \
distance.cpp \
linereader.cpp \
diseasepackage.cpp \
error.cpp \
newpagedialog.cpp \
resultpage.cpp \
test.cpp
HEADERS += mainwindow.h \
dataform.h \
distance.h \
datavec.h \
linereader.h \
diseasepackage.h \
error.h \
newpagedialog.h \
resultpage.h
FORMS += mainwindow.ui \
dataform.ui \
newpagedialog.ui
这是我的测试源文件:
#include <QObject>
#include <QTest>
#include "distance.h"
#include "diseasepackage.h"
class TestDistance: public QObject
{
Q_OBJECT
public:
virtual ~TestDistance();
private slots:
void jensen_shannon();
};
TestDistance::~TestDistance() {}
void TestDistance::jensen_shannon()
{
DiseasePackage pkg("CRC.zip");
}
QTEST_MAIN(TestDistance);