Sie können Ihre JOGL-basierte Anwendung testen, indem Sie Sikuli verwenden, der die Benutzeroberflächenautomatisierung über Bilderkennungstechnologie auf Bildschirmaufnahmen ausführt.
Ich verwende derzeit Sikuli, um eine Java App funktional zu testen, die hauptsächlich auf der NASA Worldwind Java SDK basiert (die auf JOGL basiert). Mit der Sikuli Java API kann meine Testsuite Icons innerhalb des OpenGL Canvas erkennen, auf sie klicken und sie auch ziehen. Sikuli kann auch Text aus der Zeichenfläche mittels OCR erkennen und extrahieren, aber die Leistung scheint ein kleiner Treffer zu sein (je nach Sprache, Schriftart, Größe und Hintergrundfarben hinter dem Text).
Ich habe eine Menge automatisierter UI-Tests mit anderen Tools durchgeführt, die das Fenster-Toolkit untersuchen (z. B. Swing, SWT, natives Windows) und festgestellt haben, dass Sikuli viel langsamer läuft als diese, aber das ist angesichts der Menge verständlich der Bildverarbeitung muss es hinter den Kulissen tun. Beachten Sie auch, dass Sikuli derzeit benötigt, dass Ihre Anwendung in einem Fenster ausgeführt wird (nicht im Vollbildmodus).
Sikuli läuft sowohl unter Windows als auch unter Linux. Ich würde dir empfehlen, es auszuprobieren. Ich konnte kein anderes Werkzeug finden, das in der Lage wäre, diese Ebene des Funktionstests einer OpenGL-basierten Anwendung zu testen.
Verzeihen Sie die noob Frage, aber was unterscheidet OpenGL-Anwendungstests von anderen App-Tests? – Bahbar
Was ich wirklich meinte, ist, die OpenGL-Ansicht selbst zu testen. Klicken, Ziehen, Drehen, Zoomen usw. Es gibt Werkzeuge, mit denen Sie Ihre GUI-Interaktion mit einer Swing-App aufzeichnen und wiedergeben können. Sie können dies für alle Ihre Kerninteraktionen tun und es als Regressionstest wiederholen. Ich hätte gerne eine ähnliche Lösung für OpenGL, aber ich weiß nicht, welche existiert. – hhafez