QT Testing: Unterschied zwischen den Versionen
Alkurz (Diskussion | Beiträge) |
Alkurz (Diskussion | Beiträge) |
||
Zeile 1: | Zeile 1: | ||
==Vorbedingungen== |
==Vorbedingungen== |
||
=== |
===Qt-Download=== |
||
https://www.qt.io/download |
https://www.qt.io/download |
||
===Unterstützte Versionen=== |
===Unterstützte Versionen=== |
||
Expecco unterstützt das Testen von |
Expecco unterstützt das Testen von Qt-Applikationen unter Windows und Linux, Qt Quick/QML-Anwendungen ab der '''Qt Version 5'''. |
||
Für die verschiedenen |
Für die verschiedenen Qt-Versionen, Betriebssysteme, Entwicklungsumgebungen (VisualStudio, ...) und Rechnerarchitekturen (32/64 bit) stellen wir eigens erzeugte Bibliotheken (dll, so) zur Verfügung. Einige davon werden standardmäßig mit expecco ausgeliefert. Für andere Versionen erzeugen wir die Bibliothek auf Anfrage. |
||
Eine Übersicht über die ausgelieferten Bibliotheken und ihren Versionsstand finden sie [[#ExpeccoTestService-Bibliothek: Auslieferung in Expecco-Versionen|hier]]. |
Eine Übersicht über die ausgelieferten Bibliotheken und ihren Versionsstand finden sie [[#ExpeccoTestService-Bibliothek: Auslieferung in Expecco-Versionen|hier]]. |
||
==Testen von |
==Testen von Qt-Programmen== |
||
===Testvorbereitungen=== |
===Testvorbereitungen=== |
||
Zeile 16: | Zeile 16: | ||
====Einbinden der expeccoTestService-Bibliothek==== |
====Einbinden der expeccoTestService-Bibliothek==== |
||
Um mit expecco ein |
Um mit expecco ein Qt-Programm zu testen, wird in das zu testenden Programms die von uns ausgelieferte Bibliothek ''expeccoTestService.[dll/so]'' eingebunden. Dies erfolgt über ein Batch- bzw. Shell-Skript ohne Eingriff in den Sourcecode des zu testenden Programms. |
||
Eine Anleitung für das jeweilige Betriebssystem des Testrechners finden Sie hier: |
|||
* [[Qt Inject Windows#Inject expeccoTestService-Library|Qt Inject für Windows]] |
|||
* [[Qt Inject Linux#Inject expeccoTestService-Library|Qt Inject für Linux / macOS]]. |
|||
Alternativ kann der Aufruf der ExpeccoTestService-Bibliothek auch in den Sourcecode der zu testenden Applikation eingefügt werden ([[Qt Inject Windows#Insert into Source Code (alternative)|Beschreibung]]). |
Alternativ kann der Aufruf der ExpeccoTestService-Bibliothek auch in den Sourcecode der zu testenden Applikation eingefügt werden ([[Qt Inject Windows#Insert into Source Code (alternative)|Beschreibung]]). |
||
Zeile 26: | Zeile 30: | ||
* Log-File: <code>ETS_QT_LOG_FILE</code> (Standardwert: c:\Windows\temp\etsQt.log bzw. /tmp/etsQt.log) |
* Log-File: <code>ETS_QT_LOG_FILE</code> (Standardwert: c:\Windows\temp\etsQt.log bzw. /tmp/etsQt.log) |
||
* Server-Port: <code>ETS_QT_PORT_NUMBER</code> (Standardwert: 8866) |
* Server-Port: <code>ETS_QT_PORT_NUMBER</code> (Standardwert: 8866) |
||
* Timeout Vorschau im ms (nur Qt Quick): <code>ETS_TIMEOUT_QUICK_IMAGE</code> (Standardwert: 200) |
|||
====Benötigte |
====Benötigte Qt-Bibliotheken zur Laufzeit==== |
||
Die ExpeccoTestService-Bibliothek ist abhängig von folgenden |
Die ExpeccoTestService-Bibliothek ist abhängig von folgenden Qt-Bibliotheken: |
||
* Qt5Core |
* Qt5Core |
||
* Qt5Gui |
* Qt5Gui |
||
Zeile 54: | Zeile 58: | ||
===Qt Quick/QML-Aktionen=== |
===Qt Quick/QML-Aktionen=== |
||
Für den Test von Qt Quick-/QML-Programmen können fast alle Aktionen der QtLibrary verwendet werden, die für das Testen von Qt-Programmen |
Für den Test von Qt Quick-/QML-Programmen können fast alle Aktionen der QtLibrary verwendet werden, die für das Testen von Qt-Programmen auf Basis von QWidget / QApplication definiert sind. |
||
⚫ | |||
QWidget-Aktionen sind dabei für Qt Quick-Elemente, die sich von QQuickItem ableiten, anwendbar. |
QWidget-Aktionen sind dabei für Qt Quick-Elemente, die sich von QQuickItem ableiten, anwendbar. |
||
Zeile 62: | Zeile 64: | ||
Die unterschiedliche Behandlung kapselt der ExpeccoTestService. Die Aktion und die Eingangs- und Ausgangspins bleiben somit für beide Qt-Technologien gleich. |
Die unterschiedliche Behandlung kapselt der ExpeccoTestService. Die Aktion und die Eingangs- und Ausgangspins bleiben somit für beide Qt-Technologien gleich. |
||
⚫ | Die Aktionen, die auch für Tests von Qt Quick-/QML-Programmen geeignet sind, sind mit dem Etikett / Tag <code>qt-quick</code> versehen. Die Aktionen können dadurch mit einer konfigurierbaren Farbe dargestellt werden ([[Settings TagColorSettings/en|Extras - Einstellungen - Look & Feel - Farben per Etikett (Tag)]]). |
||
===Qt Quick-/QML-Besonderheiten=== |
===Qt Quick-/QML-Besonderheiten=== |
||
====Steuerung über Properties==== |
====Steuerung über Eigenschaften / Properties==== |
||
Basis aller Qt Quick-/QML-Oberflächenelemente ist QQuickItem. Über Properties können die meisten Eigenschaften eingestellt werden. Von QQuickItem gibt es eine Vielzahl von Ableitungen. Expecco dafür keine speziellen Bausteine |
Basis aller Qt Quick-/QML-Oberflächenelemente ist die Klasse QQuickItem. Über Properties / Eigenschaften können in ihr die meisten Eigenschaften eingestellt werden. Von QQuickItem gibt es eine Vielzahl von Ableitungen. Expecco stellt dafür keine speziellen Bausteine zur Verfügung, die Elemente sind aber über ihre Eigenschaften steuerbar. |
||
{| class="wikitable" |
{| class="wikitable" |
||
Zeile 81: | Zeile 85: | ||
====Aktionen für selektiertes Element==== |
====Aktionen für selektiertes Element==== |
||
Anzeige von Aktionen für GUI-Elemente ist nicht |
Die Anzeige von Aktionen für GUI-Elemente im GUI-Browser ist nicht vollständig, da Qt Quick/QML nicht für jeden Oberflächenelement vordefinierte Elemente hat. |
||
====Noch nicht implementiert==== |
====Noch nicht implementiert==== |
||
Zeile 88: | Zeile 92: | ||
* Selektion von Zellen - bisher kann nur eine Zeile selektiert werden |
* Selektion von Zellen - bisher kann nur eine Zeile selektiert werden |
||
== |
==Bekannte Probleme== |
||
===QApplication::ShortCutEvent=== |
===QApplication::ShortCutEvent=== |
||
Aufgrund von internen Änderungen in |
Aufgrund von internen Änderungen in Qt Version 5 funktioniert der Baustein nicht mehr. Ein Workaround besteht darin, die Tastenereignisse separat zu senden, wie im Beispiel im Reiter Test/Demo der Aktion gezeigt. |
||
==ExpeccoTestService-Bibliothek: Auslieferung in Expecco-Versionen== |
==ExpeccoTestService-Bibliothek: Auslieferung in Expecco-Versionen== |
||
Aufstellung der Expecco-Versionen mit der letzten Aktualisierung der ''ExpeccoTestService''-Bibliothek für die verschieden Qt-Versionen und Buildsysteme. |
|||
===Windows=== |
===Windows=== |
||
{| class="wikitable" |
{| class="wikitable" |
||
! Expecco-Version !! |
! Expecco-Version !! Qt Version !! Architektur !! Build-System !! Verzeichnis !! Kommentar |
||
|- |
|- |
||
Zeile 131: | Zeile 137: | ||
|} |
|} |
||
===Linux / |
===Linux / macOS=== |
||
{| class="wikitable" |
{| class="wikitable" |
||
! Expecco-Version !! |
! Expecco-Version !! Qt Version !! Architektur !! Build-System !! Verzeichnis !! Kommentar |
||
|- |
|- |
||
Version vom 6. Dezember 2021, 10:46 Uhr
Inhaltsverzeichnis
Vorbedingungen[Bearbeiten]
Qt-Download[Bearbeiten]
Unterstützte Versionen[Bearbeiten]
Expecco unterstützt das Testen von Qt-Applikationen unter Windows und Linux, Qt Quick/QML-Anwendungen ab der Qt Version 5.
Für die verschiedenen Qt-Versionen, Betriebssysteme, Entwicklungsumgebungen (VisualStudio, ...) und Rechnerarchitekturen (32/64 bit) stellen wir eigens erzeugte Bibliotheken (dll, so) zur Verfügung. Einige davon werden standardmäßig mit expecco ausgeliefert. Für andere Versionen erzeugen wir die Bibliothek auf Anfrage.
Eine Übersicht über die ausgelieferten Bibliotheken und ihren Versionsstand finden sie hier.
Testen von Qt-Programmen[Bearbeiten]
Testvorbereitungen[Bearbeiten]
Einbinden der expeccoTestService-Bibliothek[Bearbeiten]
Um mit expecco ein Qt-Programm zu testen, wird in das zu testenden Programms die von uns ausgelieferte Bibliothek expeccoTestService.[dll/so] eingebunden. Dies erfolgt über ein Batch- bzw. Shell-Skript ohne Eingriff in den Sourcecode des zu testenden Programms.
Eine Anleitung für das jeweilige Betriebssystem des Testrechners finden Sie hier:
Alternativ kann der Aufruf der ExpeccoTestService-Bibliothek auch in den Sourcecode der zu testenden Applikation eingefügt werden (Beschreibung).
Startparameter[Bearbeiten]
Die ExpeccoTestService-Bibliothek kann über Umgebungsvariablen eingestellt werden:
- Log-Level:
ETS_QT_LOG_LEVEL
(Standardwert: 0, für Logging: 2) - Log-File:
ETS_QT_LOG_FILE
(Standardwert: c:\Windows\temp\etsQt.log bzw. /tmp/etsQt.log) - Server-Port:
ETS_QT_PORT_NUMBER
(Standardwert: 8866) - Timeout Vorschau im ms (nur Qt Quick):
ETS_TIMEOUT_QUICK_IMAGE
(Standardwert: 200)
Benötigte Qt-Bibliotheken zur Laufzeit[Bearbeiten]
Die ExpeccoTestService-Bibliothek ist abhängig von folgenden Qt-Bibliotheken:
- Qt5Core
- Qt5Gui
- Qt5Network
- Qt5QmlModels
- Qt5Qml
- Qt5Quick
- Qt5Widgets
Verbinden mit expecco GUI Browser[Bearbeiten]
Mit dem GUI Browser kann eine Verbindung zum zu testenden Programm aufgebaut werden:
Verbinden
- Qt
Im nachfolgenden Dialog die Netzwerkadresse des Rechners, auf dem die Applikation läuft eingeben sowie den Port für die Verbindung (Standardmäßig 8866)
Anleitung GUI Browser.
Qt Quick-/QML-Programme[Bearbeiten]
Qt Quick-/QML-Anwendungen können ab expecco 21.2 mit der expecco QtLibrary getestet werden.
Qt Quick/QML-Aktionen[Bearbeiten]
Für den Test von Qt Quick-/QML-Programmen können fast alle Aktionen der QtLibrary verwendet werden, die für das Testen von Qt-Programmen auf Basis von QWidget / QApplication definiert sind.
QWidget-Aktionen sind dabei für Qt Quick-Elemente, die sich von QQuickItem ableiten, anwendbar. QQuickItemView-Aktionen sind für die Listen-Elemente von Qt Quick geeignet.
Die unterschiedliche Behandlung kapselt der ExpeccoTestService. Die Aktion und die Eingangs- und Ausgangspins bleiben somit für beide Qt-Technologien gleich.
Die Aktionen, die auch für Tests von Qt Quick-/QML-Programmen geeignet sind, sind mit dem Etikett / Tag qt-quick
versehen. Die Aktionen können dadurch mit einer konfigurierbaren Farbe dargestellt werden (Extras - Einstellungen - Look & Feel - Farben per Etikett (Tag)).
Qt Quick-/QML-Besonderheiten[Bearbeiten]
Steuerung über Eigenschaften / Properties[Bearbeiten]
Basis aller Qt Quick-/QML-Oberflächenelemente ist die Klasse QQuickItem. Über Properties / Eigenschaften können in ihr die meisten Eigenschaften eingestellt werden. Von QQuickItem gibt es eine Vielzahl von Ableitungen. Expecco stellt dafür keine speziellen Bausteine zur Verfügung, die Elemente sind aber über ihre Eigenschaften steuerbar.
Qt Quick-Element | Eigenschaft | Kommentar |
---|---|---|
Tumbler | currentIndex | |
Switch | checked | Geeignete Aktionen:QCheckButton::GetState QCheckButton::SetState = %2
|
wird fortgesetzt |
Aktionen für selektiertes Element[Bearbeiten]
Die Anzeige von Aktionen für GUI-Elemente im GUI-Browser ist nicht vollständig, da Qt Quick/QML nicht für jeden Oberflächenelement vordefinierte Elemente hat.
Noch nicht implementiert[Bearbeiten]
- TreeView
- Menu
- Selektion von Zellen - bisher kann nur eine Zeile selektiert werden
Bekannte Probleme[Bearbeiten]
QApplication::ShortCutEvent[Bearbeiten]
Aufgrund von internen Änderungen in Qt Version 5 funktioniert der Baustein nicht mehr. Ein Workaround besteht darin, die Tastenereignisse separat zu senden, wie im Beispiel im Reiter Test/Demo der Aktion gezeigt.
ExpeccoTestService-Bibliothek: Auslieferung in Expecco-Versionen[Bearbeiten]
Aufstellung der Expecco-Versionen mit der letzten Aktualisierung der ExpeccoTestService-Bibliothek für die verschieden Qt-Versionen und Buildsysteme.
Windows[Bearbeiten]
Expecco-Version | Qt Version | Architektur | Build-System | Verzeichnis | Kommentar |
---|---|---|---|---|---|
2021-2 | 5.15.0 | x64 | vs2019 | vs2019_x64_Qt5.15.0 | QtQuick / QML |
5.15.0 | x86 | vs2019 | vs2019_Qt5.15.0 | ||
5.9.3 | x64 | vs2015 | vs2015_x64_Qt5.9.3 | ||
5.9.1 | x64 | vs2015 | vs2015_x64_Qt5.9.1 | ||
2021-1 | 5.9.3 | x86 | vs2015 | vs2015_x86_Qt5.9.3 | |
2020-1 | 5.8.0 | x86 | vs2013 | vs2013_Qt5.8.0 | |
2019-2 | 5.9.3 | x64 | vs2013 | vs2013_x64_Qt5.9.3 | |
5.9.1 | x64 | vs2013 | vs2013_x64_Qt5.9.1 | ||
2018-2 | 5.4.2 | x86 | vs2010 | vs2010_Qt5.4.2 |
Linux / macOS[Bearbeiten]
Expecco-Version | Qt Version | Architektur | Build-System | Verzeichnis | Kommentar |
---|---|---|---|---|---|
2021-2 | 5.15.0 | x64 | gcc | gcc_x64_Qt5.15.0 | QtQuick / QML |
2021-1 | 5.12.2 | arm32 | gcc | gcc_arm32_Qt.12.2 | |
5.9.5 | x64 | gcc | gcc_x64_Qt5.9.5 | ||
2020-2 | 5.9.1 | x64 | gcc | gcc_x64_Qt5.9.1 | |
2020-1 | 5.12.3 | x64 | gcc | gcc_x64_Qt5.12.3 |
Zurück zu Qt Plugin Reference