Hi!
Hat sich jemand von euch schonmal mit dem Unit Testing Framework von Qt befasst?
Das Tutorial vom Assistant ist ja sehr nett, einfach und verständlich. Aber ich bekomme es nicht hin, ein Testprogramm _OHNE_
|
Quellcode
|
1
|
QTEST_MAIN(TestClass)
|
zu schreiben.

Habt ihr einen Vorschlag? Folgender Ansatz:
testlib.cpp
|
Quellcode
|
1
2
3
4
5
6
7
8
9
10
11
12
|
#include <QCoreApplication>
#include <QTest>
#include "QMTestObject.h"
int main(int argc, char** argv) {
QCoreApplication app(argc, argv);
QMTestObject test;
return QTest::qExec(&test, argc, argv);
}
|
QMTestObject.h
|
Quellcode
|
1
2
3
4
5
6
7
8
9
10
11
12
13
|
#ifndef QMTESTOBJECT_H_
#define QMTESTOBJECT_H_
#include <QObject>
class QMTestObject: public QObject {
Q_OBJECT
private slots:
void testName();
};
#endif /*QMTESTOBJECT_H_*/
|
QMTestObject.cpp
|
Quellcode
|
1
2
3
4
5
6
7
8
9
10
11
12
13
|
#include "QMTestObject.h"
#include <QTest>
#include <QString>
#include "QMObject.h"
void QMTestObject::testName() {
QMObject *o = new QMObject();
o->setName("QMTestObject::testName");
QCOMPARE(o->name(), QString("QMTestObject::testName"));
}
|
An sich sehr simpel. Ich entdecke auch keinen Fehler. Aber beim verlinken findet er die vtable von meiner Testklasse nicht.
release/libtest.o(.text+0x83):libtest.cpp: undefined reference to `vtable for QMTestObject'
release/libtest.o(.text+0xb8 ):libtest.cpp: undefined reference to `vtable for QMTestObject'
release/libtest.o(.text+0x102):libtest.cpp: undefined reference to `vtable for QMTestObject'
Ideen? Ich möchte nämlich nicht für jeden TestCase eine eigene Applikation (-> EXE) erstellen, sondern die Testfälle in einer "Testumgebung" einpflegen, damit die Übersicht gewahrt bleibt.
MfG