Plattformübergreifendes, automatisiertes C++ Unit-Testing-Framework für die GUI-Entwicklung

Welches Unit-Testing-Framework sollte ich für die plattformübergreifende C++-Entwicklung wählen?

Vorzugsweise (in der Reihenfolge der Anforderungen):

  • erleichtern das wiederholte Testen von Elementen der Benutzeroberfläche in Qt (oder anderen GUI-Frameworks).
  • so einfach wie möglich sein, um neue Tests zu erstellen.
  • das Testen in allen Phasen des Entwicklungszyklus (von den Interna bis zur GUI) einfach zu automatisieren.
  • Ausgabe der Ergebnisse an einem Ort, der schön formatiert oder einfach zu formatieren ist.
  • unterstützen das testgetriebene Entwicklungsparadigma.

Diese Frage tauchte häufig in Stack Overflow-Fragen auf, aber das ist das falsche Forum für diese Frage, und viele der Antworten geben eigentlich keine Details zu den einzelnen Frameworks.

Antworten (2)

Es hört sich so an, als ob Sie sich hauptsächlich mit dem Testen der GUI-Elemente befassen (es gibt viele Testframeworks zum Testen der Ausführung, aber nicht so viele für die GUI).

Eine plattformübergreifende Lösung zum Testen der GUI-Elemente ist sikuli - es ist ein Python-Testframework, aber da es für die Testaktionen und einige Ergebnisse auf Bilderkennung angewiesen ist, sollte es auch gut zum Testen von C++-basierten GUIs funktionieren, Sie müssten es nur kompilieren Ihr Testframework oder Ihre Anwendung, bevor Sie mit den Tests beginnen.

  • Frei
  • Plattformübergreifend
  • Verwendet die Bilderkennung, um Elemente zum Anklicken, Eingabefelder usw. zu finden.
  • Kann die Bilderkennung verwenden, um Aktionen zu bestätigen
  • Erfordert keinen Zugriff auf GUI-Interna wie Feldbezeichner oder Element-IDs.
Ich bin ein großer Fan von Sikuli und benutze es bereits. Wenn ich nur nach GUI-Tests suchte, ist dies meine Präferenz. Andererseits gibt es Teile der Interna, die kein GUI-Element haben müssen, aber alle Teile sollten getestet werden. Ich würde ein All-in-One-Framework für Unit-Tests lieben. Guter Vorschlag, aber.
Ich kenne kein einziges gutes Testframework, das sowohl einen guten Unit-Test als auch einen GUI-Test durchführt.

Vielleicht möchten Sie sich das Tool Squish for Qt unseres Unternehmens ansehen . Es unterstützt das Testen von Qt-Anwendungen seit 2003 und erkennt sowohl QWidgets als auch QtQuick-Elemente. Auf allen Plattformen, auf denen Qt läuft.

Auch bildbasierte Interaktionen sind möglich. Aber nichts geht über das Wissen über spezifische Steuerungstypen, die a priori in ein Testtool eingebaut sind.

Berichte sind in den Formaten HTML, XML, JSON oder Excel verfügbar.

Wenn Sie nach GUI-Tests auf testgetriebene Weise suchen, schlage ich vor, einen Blick auf BDD zu werfen .