Das Tool „harmonyostestrunner“
Hinweis: Qt für HarmonyOS befindet sich in der Technologie-Vorschau und kann sich in zukünftigen Versionen ändern.
Einführung
Das Tool „ harmonyostestrunner “ führt einen einzelnen Qt-Autotest auf einem HarmonyOS-Gerät oder -Emulator aus und meldet das Ergebnis auf dem Host. Wenn Sie einen Test mit „ ctest “ ausführen, ruft der CMake-Test-Wrapper diesen normalerweise für Sie auf. Rufen Sie ihn direkt auf, wenn die Test-HAP auf einem Rechner erstellt wurde, das Gerät jedoch an einen anderen angeschlossen ist, oder wenn Sie eine Test-HAP, aber keinen CMake-Build-Baum zur Hand haben.
Dieses Tool erstellt oder installiert das Testpaket nicht. Stattdessen bündelt `harmonydeployqt ` die Test-Binärdateien zu einem einzigen Test-HAP (über die Option ` --test-bundle `). Sie müssen dieses HAP zuvor erstellen, signieren und auf dem Gerät installieren:
hdc install <path/to/autotests-signed.hap>So funktioniert es
- Es wird überprüft, ob das Test-Bundle-HAP auf dem Zielgerät installiert ist.
- Es beendet alle laufenden Instanzen des Bundles zwangsweise und startet dann die Funktion mit `
aa start`, wobei der Plattform mitgeteilt wird, welche gemeinsame Testbibliothek geladen werden soll und wohin die Standardausgabe sowie der Exit-Code des Tests innerhalb der Anwendungs-Sandbox umgeleitet werden sollen. - Es überträgt die Standardausgabe des Tests während der Testausführung an den Host.
- Es wartet auf den Abschluss des Tests, den es erkennt, sobald die Exit-Code-Datei lesbar wird. Eine Liveness-Prüfung erkennt einen abgestürzten Prozess, und ein optionaler No-Progress-Watchdog beendet zwangsweise einen Test, der keine Ergebnisse mehr über „
PASS“ oder „FAIL“ liefert. - Wenn der Test blockierende Systemdialoge deklariert und die Ausgabe des Tests ausbleibt, speichert er das Bildschirmlayout mit „
uitest“ und klickt auf die erwartete Schaltfläche. - Er gibt den Beendigungscode des Tests als seinen eigenen Beendigungscode zurück.
Verwendung
Die grundlegende Syntax lautet:
harmonyostestrunner [OPTIONS] <test-binary> [TESTARGS]Das Argument „ <test-binary> “ ist der Pfad zur geteilten Testbibliothek, zum Beispiel libtst_qobject.so. Der Dateiname bestimmt, welcher Test innerhalb des Bundles ausgeführt werden soll. Alles, was danach folgt, wie beispielsweise Namen von Testfunktionen oder „ -v2 “, leitet das Tool an den Test weiter.
Optionen
Die folgende Tabelle listet die Befehlszeilenoptionen von ` harmonyostestrunner` auf. Sie können jede Option über die in Klammern angegebene Umgebungsvariable festlegen. Der Wert in der Befehlszeile hat Vorrang.
| Option | Beschreibung |
|---|---|
--bundle-name <name> | HarmonyOS-Bundle-Name des installierten Test-HAP (QT_HARMONYOS_BUNDLE_NAME). Standardwert ist „ org.qtproject.autotests “. |
--ability-name <name> | HarmonyOS-Funktionsname innerhalb des Test-HAP (QT_HARMONYOS_ABILITY_NAME). Standardwert ist QAbility. |
--hdc <path> | Pfad zum Tool „ hdc “ (QT_HARMONYOS_HDC). Standardmäßig ist die Datei „ hdc “ unter PATH angegeben. |
--timeout <seconds> | Sekunden, die auf den Abschluss eines Tests gewartet wird, bevor dieser abgebrochen wird (QT_HARMONYOS_TEST_TIMEOUT). Standardwert ist 300. |
--no-progress-timeout <seconds> | Sekunden, in denen kein Ergebnis von PASS oder FAIL vorliegt, bevor das Tool den Test als hängend deklariert (QT_HARMONYOS_NO_PROGRESS_TIMEOUT). Standardwert ist 60; 0 deaktiviert den Watchdog. |
--device <key> | Der Verbindungsschlüssel für „ hdc “ (-t) für das Zielgerät (QT_HARMONYOS_DEVICE). Erforderlich, wenn Sie mehrere Geräte anschließen. |
--test-config <path> | Pfad zu den generierten Bereitstellungseinstellungen für das Test-Bundle (QT_HARMONYOS_TEST_CONFIG). Diese Datei wird beim Build generiert und vom CMake-Test-Wrapper übergeben. Das Tool liest sie aus, um die blockierenden Systemdialoge zu beantworten, auf die es reagieren muss. |
--help | Zeigt die Hilfeinformationen an. |
--version | Zeigt die Version des Tools an. |
Anwendungsbeispiel
Führen Sie den Test „ tst_qobject “ auf einem bestimmten Gerät aus und führen Sie dabei ausschließlich den Testfall „ signalsBlocked “ aus:
harmonyostestrunner --device 127.0.0.1:5555 libtst_qobject.so signalsBlockedWeitere Informationen zum „ Qt Test “-Framework finden Sie unter „Qt Test – Übersicht“.
© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.