Frage

Ich fange gerade QTestLib zu verwenden. Ich habe durch die Handbuch und Tutorial . Obwohl ich verstehe, wie Tests erstellen, erhalte ich einfach nicht, wie man diese Tests bequem machen zu laufen. Meine Einheit Test Hintergrund ist NUnit und MSTest. In diesen Umgebungen, war es trivial (eine GUI, zumindest), um zwischen einem einzigen Test, oder alle Tests in einer einzigen Test-Klasse, oder alle Tests im gesamten Projekt ausgeführt wird, nur durch den rechten Knopf klicken.

Alles, was ich in QTestLib bin zu sehen ist entweder Sie die QTEST_MAIN Makro verwenden, um die Tests in einer einzigen Klasse laufen, dann kompilieren und jede Datei einzeln testen; oder Verwendung QTest::qExec() in main() zu definieren, welche zu Testobjekten, und dann manuell ändern, und neu zu kompilieren, wenn Sie möchten, hinzufügen / entfernen Testklassen.

Ich bin sicher, dass ich etwas fehle. Ich mag einfach in der Lage sein:

  • Führen Sie einen einzigen Testmethode
  • Führen Sie die Tests in einer ganzen Klasse
  • Ausführen alle Tests

Jede dieser würden die entsprechenden Setup / Teardown Funktionen aufrufen.

EDIT: Bounty jetzt verfügbar. Es muss ein besserer Weg, oder ein GUI-Test-Runner, dass Griffe es für Sie oder etwas sein. Wenn Sie QtTest in einem Test-Driven-Umgebung verwenden, lassen Sie mich wissen, was für Sie arbeitet. (Skripte, Testläufer usw.)

War es hilfreich?

Lösung

Sie können nur ausgewählte Testfälle laufen (Prüfverfahren) durch Testnamen vorbei: Kommandozeilenargumente :

myTests.exe myCaseOne myCaseTwo

Es werden alle inits / Bereinigungen laufen. Leider keine Unterstützung gibt es für Platzhalter / Pattern-Matching, also alle Fälle laufen mit bestimmten Zeichenkette beginnen (ich, dass das übernehmen, was Sie mit „Ausführen des Tests in einer ganzen Klasse“ bedeuten), dann würden Sie Skript (Windows-Batch zum Erstellen / bash / perl / was auch immer), dass Anrufe:

myTests.exe -functions

analysiert die Ergebnisse und führt ausgewählte Tests erste Syntax.

alle Fälle ausführen zu können, nur nicht passieren jeden Parameter:

myTests.exe

Andere Tipps

Die drei Funktionen, die vom OP angefordert werden heute integriert in dem Qt Creator .

Das Projekt wird automatisch für Tests gescannt wird und sie apear auf dem Prüfstand Bereich. Unten links im Screenshot:

Qt Creator Screenshot

Jeder Test und die entsprechenden Daten können durch Klicken auf die Checkbox aktiviert werden. Über das Kontextmenü können alle Tests, alle Tests einer Klasse laufen, nur die ausgewählte oder nur ein Test. Wie gefordert.

Die Testergebnisse werden von der Qt Creator auch verfügbar sein. Ein Farbindikator zeigt Bestanden / für jeden Test nicht bestehen, entlang zusätzliche Informationen wie Debug-Meldungen.

In Kombination mit dem Qt Creator, die Verwendung des QTEST_MAIN Makro für jeden Testfall wird gut funktionieren, da jede kompilierte ausführbare Datei automatisch vom Qt Creator aufgerufen wird.

Für eine detailliertere Übersicht finden Sie in der Laufende Autotests Abschnitt der Qt Creator Handbuch.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top