Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Fehlerbehebung bei Instrumentierungstests in AWS Device Farm
Im folgenden Thema werden Fehlermeldungen aufgeführt, die beim Hochladen von Instrumentierungstests auftreten können, und Umgehungen für die einzelnen Fehler empfohlen.
Anmerkung
Wichtige Überlegungen zur Verwendung von Instrumentierungstests in AWS Device Farm finden Sie unterInstrumentierung für Android und AWS Device Farm.
Fehler beim Hochladen
Die folgenden Fehler können auftreten, wenn Sie Ihre Instrumentierungstests hochladen.
INSTRUMENTATION_TEST_PACKAGE_UNZIP_FAILED
Wenn die folgende Meldung angezeigt wird, führen Sie die folgenden Schritte aus, um das Problem zu beheben.
Warning: We could not open your test APK file. Please verify that the file is valid and try again.
Stellen Sie sicher, dass Sie das Paket für den Test fehlerfrei dekomprimieren können. Im folgenden Beispiel lautet der Name des Pakets Test-unaligned.apk app-debug-android.
Kopieren Sie das Testpaket in Ihr Arbeitsverzeichnis und führen Sie dann den folgenden Befehl aus:
$ unzip app-debug-androidTest-unaligned.apkNachdem Sie das Paket erfolgreich extrahiert haben, können Sie die Baumstruktur für das Arbeitsverzeichnis anzeigen, indem Sie den folgenden Befehl ausführen:
$ tree .Bei einem gültigen Instrumentierungstestpaket sieht die Ausgabe wie folgt aus:
. |-- AndroidManifest.xml |-- classes.dex |-- resources.arsc |-- LICENSE-junit.txt |-- junit (directory) `-- META-INF (directory)Weitere Informationen finden Sie unter Instrumentierung für Android und AWS Device Farm.
INSTRUMENTATION_TEST_PACKAGE_AAPT_DEBUG_BADGING_FAILED
Wenn die folgende Meldung angezeigt wird, führen Sie die folgenden Schritte aus, um das Problem zu beheben.
We could not extract information about your test package. Please verify that the test package is valid by running the command "aapt debug badging <path to your test package>", and try again after the command does not print any error.
Während des Upload-Validierungsprozesses analysiert Device Farm Informationen aus der Befehlsausgabe. aapt debug badging <path to your package>
Stellen Sie sicher, dass Sie diesen Befehl erfolgreich für Ihr Instrumentierungstestpaket ausführen können.
Im folgenden Beispiel lautet der Name des Pakets Test-unaligned.apk app-debug-android.
Kopieren Sie das Testpaket in Ihr Arbeitsverzeichnis und führen Sie dann den folgenden Befehl aus:
$ aapt debug badging app-debug-androidTest-unaligned.apkBei einem gültigen Instrumentierungstestpaket sieht die Ausgabe wie folgt aus:
package: name='com.amazon.aws.adf.android.referenceapp.test' versionCode='' versionName='' platformBuildVersionName='5.1.1-1819727' sdkVersion:'9' targetSdkVersion:'22' application-label:'Test-api' application: label='Test-api' icon='' application-debuggable uses-library:'android.test.runner' feature-group: label='' uses-feature: name='android.hardware.touchscreen' uses-implied-feature: name='android.hardware.touchscreen' reason='default feature for all apps' supports-screens: 'small' 'normal' 'large' 'xlarge' supports-any-density: 'true' locales: '--_--' densities: '160'Weitere Informationen finden Sie unter Instrumentierung für Android und AWS Device Farm.
INSTRUMENTATION_TEST_PACKAGE_INSTRUMENTATION_RUNNER_VALUE_MISSING
Wenn die folgende Meldung angezeigt wird, führen Sie die folgenden Schritte aus, um das Problem zu beheben.
We could not find the instrumentation runner value in the AndroidManifest.xml. Please verify the test package is valid by running the command "aapt dump xmltree <path to your test package> AndroidManifest.xml", and try again after finding the instrumentation runner value behind the keyword "instrumentation."
Während des Upload-Validierungsprozesses analysiert Device Farm den Instrumentation Runner-Wert aus dem XML-Analysebaum für eine im Paket enthaltene XML-Datei. Sie können folgenden Befehl verwenden: aapt dump xmltree <path to your package>
AndroidManifest.xml.
Stellen Sie sicher, dass Sie diesen Befehl für Ihr Instrumentierungstestpaket ausführen und den Instrumentierungswert erfolgreich finden können.
Im folgenden Beispiel lautet der Name des Pakets app-debug-android. Test-unaligned.apk
Kopieren Sie das Testpaket in Ihr Arbeitsverzeichnis und führen Sie dann den folgenden Befehl aus:
$ aapt dump xmltree app-debug-androidTest-unaligned.apk AndroidManifest.xml | grep -A5 "instrumentation"Bei einem gültigen Instrumentierungstestpaket sieht die Ausgabe wie folgt aus:
E: instrumentation (line=9) A: android:label(0x01010001)="Tests for com.amazon.aws.adf.android.referenceapp" (Raw: "Tests for com.amazon.aws.adf.android.referenceapp") A: android:name(0x01010003)="android.support.test.runner.AndroidJUnitRunner" (Raw: "android.support.test.runner.AndroidJUnitRunner") A: android:targetPackage(0x01010021)="com.amazon.aws.adf.android.referenceapp" (Raw: "com.amazon.aws.adf.android.referenceapp") A: android:handleProfiling(0x01010022)=(type 0x12)0x0 A: android:functionalTest(0x01010023)=(type 0x12)0x0Weitere Informationen finden Sie unter Instrumentierung für Android und AWS Device Farm.
INSTRUMENTATION_TEST_PACKAGE_AAPT_DUMP_XMLTREE_FAILED
Wenn die folgende Meldung angezeigt wird, führen Sie die folgenden Schritte aus, um das Problem zu beheben.
We could not find the valid AndroidManifest.xml in your test package. Please verify that the test package is valid by running the command "aapt dump xmltree <path to your test package> AndroidManifest.xml", and try again after the command does not print any error.
Während des Upload-Validierungsprozesses analysiert Device Farm mithilfe des folgenden Befehls Informationen aus dem XML-Analysebaum für eine im Paket enthaltene XML-Datei:. aapt dump xmltree <path to your package> AndroidManifest.xml
Stellen Sie sicher, dass Sie diesen Befehl erfolgreich für Ihr Instrumentierungstestpaket ausführen können.
Im folgenden Beispiel lautet der Name des Pakets app-debug-android. Test-unaligned.apk
Kopieren Sie das Testpaket in Ihr Arbeitsverzeichnis und führen Sie dann den folgenden Befehl aus:
$ aapt dump xmltree app-debug-androidTest-unaligned.apk AndroidManifest.xmlBei einem gültigen Instrumentierungstestpaket sieht die Ausgabe wie folgt aus:
N: android=http://schemas.android.com/apk/res/android E: manifest (line=2) A: package="com.amazon.aws.adf.android.referenceapp.test" (Raw: "com.amazon.aws.adf.android.referenceapp.test") A: platformBuildVersionCode=(type 0x10)0x16 (Raw: "22") A: platformBuildVersionName="5.1.1-1819727" (Raw: "5.1.1-1819727") E: uses-sdk (line=5) A: android:minSdkVersion(0x0101020c)=(type 0x10)0x9 A: android:targetSdkVersion(0x01010270)=(type 0x10)0x16 E: instrumentation (line=9) A: android:label(0x01010001)="Tests for com.amazon.aws.adf.android.referenceapp" (Raw: "Tests for com.amazon.aws.adf.android.referenceapp") A: android:name(0x01010003)="android.support.test.runner.AndroidJUnitRunner" (Raw: "android.support.test.runner.AndroidJUnitRunner") A: android:targetPackage(0x01010021)="com.amazon.aws.adf.android.referenceapp" (Raw: "com.amazon.aws.adf.android.referenceapp") A: android:handleProfiling(0x01010022)=(type 0x12)0x0 A: android:functionalTest(0x01010023)=(type 0x12)0x0 E: application (line=16) A: android:label(0x01010001)=@0x7f020000 A: android:debuggable(0x0101000f)=(type 0x12)0xffffffff E: uses-library (line=17) A: android:name(0x01010003)="android.test.runner" (Raw: "android.test.runner")Weitere Informationen finden Sie unter Instrumentierung für Android und AWS Device Farm.
INSTRUMENTATION_TEST_PACKAGE_TEST_PACKAGE_NAME_VALUE_MISSING
Wenn die folgende Meldung angezeigt wird, führen Sie die folgenden Schritte aus, um das Problem zu beheben.
We could not find the package name in your test package. Please verify that the test package is valid by running the command "aapt debug badging <path to your test package>", and try again after finding the package name value behind the keyword "package: name."
Während des Upload-Validierungsprozesses analysiert Device Farm den Wert des Paketnamens aus der Ausgabe des folgenden Befehls:. aapt debug badging <path to your package>
Stellen Sie sicher, dass Sie diesen Befehl für Ihr Instrumentierungstestpaket ausführen und den Wert für den Paketnamen erfolgreich finden können.
Im folgenden Beispiel lautet der Name des Pakets Test-unaligned.apk app-debug-android.
Kopieren Sie das Testpaket in Ihr Arbeitsverzeichnis und führen Sie dann den folgenden Befehl aus:
$ aapt debug badging app-debug-androidTest-unaligned.apk | grep "package: name="Bei einem gültigen Instrumentierungstestpaket sieht die Ausgabe wie folgt aus:
package: name='com.amazon.aws.adf.android.referenceapp.test' versionCode='' versionName='' platformBuildVersionName='5.1.1-1819727'Weitere Informationen finden Sie unter Instrumentierung für Android und AWS Device Farm.
Testen Sie die Erkenntnisse
Wenn du dich für das Testen von Insights entscheidest, generiert Device Farm einen zusammenfassenden Bericht für deinen Lauf und jeden Auftrag, der dazugehört. Wenn der Dienst den Bericht nicht generieren kann, lautet der Status des Insights-Berichts SKIPPED oderERRORED, und in der Berichtsmeldung wird der Grund dafür erklärt. Die folgenden Meldungen können auftreten, wenn Erkenntnisse für Instrumentierungstests generiert werden.
Der Job wurde nicht vollständig ausgeführt
Unable to generate test insights because the job was
status.
Der Job wurde im Status „Nicht erfolgreich“ beendet (wo status ist STOPPEDERRORED, oderSKIPPED), sodass es kein zusammenfassendes Ergebnis gab. Ein Lauf, der im Status „Fehlgeschlagen“ endet, liefert dennoch Erkenntnisse.
Um dieses Problem zu beheben, untersuchen Sie, warum der Job nicht vollständig ausgeführt wurde. In vielen Fällen kann das message Feld des Jobs selbst erklären, warum der Job nicht abgeschlossen wurde.
Die Ergebnisse enthielten keine Testfälle
Test insights could not be generated. The test spec output file was
parsed successfully but contained no test cases.
Das Ergebnisartefakt wurde erfolgreich analysiert, enthielt jedoch keine Testfälle.
Um dieses Problem zu beheben, stellen Sie sicher, dass Ihre Testsuite mindestens einen Testfall enthält und dass die Ergebnisse korrekt unter gespeichert sind. $DEVICEFARM_LOG_DIR
Die Testausgabe überschreitet die maximal unterstützte Größe
Unable to generate test insights: test output "test spec output" exceeds
the maximum supported size of 1GB.
Die Ausgabe der Testspezifikation ist größer als 1 GB.
Um dieses Problem zu beheben, untersuchen Sie Befehle, die eine große Anzahl von Zeilen in Ihrer Testspezifikationsausgabe generieren. Entfernen oder ändern Sie sie dann.
In der Ausgabe der Testspezifikationen wurde keine Instrumentierungsausgabe gefunden
Unable to generate test insights. No instrumentation test output was
found in the test spec output file.
Die Ausgabedatei der Testspezifikation war vorhanden, enthielt jedoch keine Instrumenten-Ausgabezeilen.
Um dieses Problem zu beheben, stellen Sie sicher, dass Ihr Framework die Instrumentierungsausgabe stdout an die Testspezifikationsdatei ausgibt.