• 26.08.2025, 19:00
  • Registrieren
  • Anmelden
  • Du bist nicht angemeldet.

 

Eumel

God

[Qt 4.3.3] Unit Testing

Sonntag, 2. März 2008, 23:23

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. :(

Zitat

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
"I've always said, the Web is the sum of all human knowledge plus porn.", Ron Gilbert
UltraStar Manager 1.7.2 | Infos zu meinem PC | .o0 DeathSpank 0o.

Y0Gi

God

Re: [Qt 4.3.3] Unit Testing

Montag, 3. März 2008, 13:11

Bedaure, mit Tests habe ich noch einige Gewöhnungsschwierigkeiten und bei Qt hatte ich damit gar keinen Kontakt.

Eumel

God

Re: [Qt 4.3.3] Unit Testing

Montag, 3. März 2008, 13:54

Ich habe nicht die geringste Ahnung, warum, aber jetzt geht es genauso.

Wahrscheinlich hat er veraltete Objektdateien gehabt.

MfG
"I've always said, the Web is the sum of all human knowledge plus porn.", Ron Gilbert
UltraStar Manager 1.7.2 | Infos zu meinem PC | .o0 DeathSpank 0o.

Y0Gi

God

Re: [Qt 4.3.3] Unit Testing

Montag, 3. März 2008, 16:13

*hust* Compilersprachen zum Entwickeln sind out! *hust* ;)

hurra

God

Re: [Qt 4.3.3] Unit Testing

Montag, 3. März 2008, 16:16

nicht unbedingt *hust*

E: Gerade QT ist ziemlich fein ;) Hat zwar jetzt nichts mit compilieren direkt zu tun, aber trotzdem

Eumel

God

Re: [Qt 4.3.3] Unit Testing

Montag, 3. März 2008, 22:40

Ich glaube Y0Gi mag Qt. Aber so ein Einwurf kommt immer von irgendwem, wenn C/C++ wieder mal seine Objektdateien durcheinander wirft. *hehe*

Das bin ich inzwischen gewohnt. Mein Mitbewohner ist auch so ein Python-Anhänger. :D

@Y0Gi: Tests schreiben ist in! ;)

MFG
"I've always said, the Web is the sum of all human knowledge plus porn.", Ron Gilbert
UltraStar Manager 1.7.2 | Infos zu meinem PC | .o0 DeathSpank 0o.

Y0Gi

God

Re: [Qt 4.3.3] Unit Testing

Montag, 3. März 2008, 22:54

Ich finde KDE hässlich wie die Nacht und dass Trolltech von Nokia übernommen wurde, hat in diesen Tagen einen sehr üblen Nachgeschmack. Mit Qt habe ich in einem Projekt gearbeitet und als Bibliothek war es durchaus gut. Nachwievor finde ich den Kompilierungsprozess in C/C++ aber sehr umständlich (Java mit Eclipse fällt dagegen fast gar nicht auf) und dass Qt selbst noch dieses `qmake` draufpackt, hat es mir nicht angenehmer gemacht, sondern zusätzliche Probleme beschert.

Zitat

@Y0Gi: Tests schreiben ist in! ;)

Ich versuche mich immer mal wieder dran und für Libs, abgekoppelte Callables oder CLI-Apps klappt das auch sehr gut. Web- oder GUI-Apps zu testen ist dagegen mit Unittests nicht so intuitiv, da muss ich erst noch einige Frameworks abklappern.

grover

Senior Member

Re: [Qt 4.3.3] Unit Testing

Montag, 3. März 2008, 23:40

Zitat von »Y0Gi«

Ich finde KDE hässlich wie die Nacht und dass Trolltech von Nokia übernommen wurde, hat in diesen Tagen einen sehr üblen Nachgeschmack. Mit Qt habe ich in einem Projekt gearbeitet und als Bibliothek war es durchaus gut. Nachwievor finde ich den Kompilierungsprozess in C/C++ aber sehr umständlich (Java mit Eclipse fällt dagegen fast gar nicht auf) und dass Qt selbst noch dieses `qmake` draufpackt, hat es mir nicht angenehmer gemacht, sondern zusätzliche Probleme beschert.


Sehe ich genau so. Allerdings ohne den Java-Teil :)

Eumel

God

Re: [Qt 4.3.3] Unit Testing

Montag, 3. März 2008, 23:59

Zitat von »Y0Gi«

Ich finde KDE hässlich wie die Nacht ...


Das Design/UI von KDE hat absolut nichts mit Qt zu tun!

MfG

Edit: Die Qt-Integration in Eclipse ist durchaus gelungen. Solltest du mal testen ;)
"I've always said, the Web is the sum of all human knowledge plus porn.", Ron Gilbert
UltraStar Manager 1.7.2 | Infos zu meinem PC | .o0 DeathSpank 0o.

Y0Gi

God

Re: [Qt 4.3.3] Unit Testing

Dienstag, 4. März 2008, 00:44

Zitat von »Saiya@HPI«

Das Design/UI von KDE hat absolut nichts mit Qt zu tun!

Nein, aber das "Design" von KDE schadet dem Image von Qt - und meinen Augen.

Eumel

God

Re: [Qt 4.3.3] Unit Testing

Mittwoch, 5. März 2008, 11:42

Au ja - leider. :(

MfG
"I've always said, the Web is the sum of all human knowledge plus porn.", Ron Gilbert
UltraStar Manager 1.7.2 | Infos zu meinem PC | .o0 DeathSpank 0o.