• 26.08.2025, 11:07
  • S’inscrire
  • Connexion
  • Vous n’êtes pas connecté.

 

Eumel

God

[Qt 4.3.3] Unit Testing

dimanche 2 mars 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_

Code source

1
QTEST_MAIN(TestClass)


zu schreiben. :( Habt ihr einen Vorschlag? Folgender Ansatz:

testlib.cpp

Code source

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

Code source

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

Code source

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

Citation

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

lundi 3 mars 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

lundi 3 mars 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

lundi 3 mars 2008, 16:13

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

hurra

God

Re: [Qt 4.3.3] Unit Testing

lundi 3 mars 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

lundi 3 mars 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

lundi 3 mars 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.

Citation

@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

lundi 3 mars 2008, 23:40

Citation de "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

lundi 3 mars 2008, 23:59

Citation de "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

mardi 4 mars 2008, 00:44

Citation de "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

mercredi 5 mars 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.