View a markdown version of this page

Risoluzione dei problemi relativi ai test di strumentazione in AWS Device Farm - AWS Device Farm

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Risoluzione dei problemi relativi ai test di strumentazione in AWS Device Farm

Il seguente argomento elenca i messaggi di errore che si verificano durante il caricamento dei test di Instrumentation e consiglia soluzioni alternative per risolvere ogni errore.

Nota

Per considerazioni importanti sull'utilizzo dei test di strumentazione in AWS Device Farm, consulta. Strumentazione per Android e AWS Device Farm

Errori di caricamento

Quando si caricano i test di strumentazione possono verificarsi i seguenti errori.

INSTRUMENTATION_TEST_PACKAGE_UNZIP_FAILED

In presenza del seguente messaggio, attenersi alla procedura indicata per risolvere il problema.

Warning: We could not open your test APK file. Please verify that the file is valid and try again.

Verificare che sia possibile decomprimere il pacchetto di test senza errori. Nell'esempio seguente, il nome del pacchetto è app-debug-android. Test-unaligned.apk

  1. Copiare il pacchetto di test nella directory di lavoro, quindi eseguire il comando seguente:

    $ unzip app-debug-androidTest-unaligned.apk
  2. Dopo aver decompresso il pacchetto, è possibile trovare la struttura ad albero della directory di lavoro eseguendo il seguente comando:

    $ tree .

    Un pacchetto di test Instrumentation valido produce un output come il seguente:

    . |-- AndroidManifest.xml |-- classes.dex |-- resources.arsc |-- LICENSE-junit.txt |-- junit (directory) `-- META-INF (directory)

    Per ulteriori informazioni, consulta Strumentazione per Android e AWS Device Farm.

INSTRUMENTATION_TEST_PACKAGE_AAPT_DEBUG_BADGING_FAILED

In presenza del seguente messaggio, attenersi alla procedura indicata per risolvere il problema.

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.

Durante il processo di convalida del caricamento, Device Farm analizza le informazioni dall'output del comando. aapt debug badging <path to your package>

Controllare che questo comando possa essere eseguito correttamente sul pacchetto di test Instrumentation

Nell'esempio seguente, il nome del pacchetto è app-debug-android. Test-unaligned.apk

  • Copiare il pacchetto di test nella directory di lavoro, quindi eseguire il comando seguente:

    $ aapt debug badging app-debug-androidTest-unaligned.apk

    Un pacchetto di test Instrumentation valido produce un output come il seguente:

    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'

    Per ulteriori informazioni, consulta Strumentazione per Android e AWS Device Farm.

INSTRUMENTATION_TEST_PACKAGE_INSTRUMENTATION_RUNNER_VALUE_MISSING

In presenza del seguente messaggio, attenersi alla procedura indicata per risolvere il problema.

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."

Durante il processo di convalida del caricamento, Device Farm analizza il valore del runner di strumentazione dall'albero di analisi XML per un file XML contenuto nel pacchetto. Utilizzare il seguente comando: aapt dump xmltree <path to your package> AndroidManifest.xml.

Controllare che sia possibile eseguire questo comando nel pacchetto di test Instrumentation e sia possibile trovare il valore instrumentation.

Nell'esempio seguente, il nome del pacchetto è app-debug-android. Test-unaligned.apk

  • Copiare il pacchetto di test nella directory di lavoro, quindi eseguire il comando seguente:

    $ aapt dump xmltree app-debug-androidTest-unaligned.apk AndroidManifest.xml | grep -A5 "instrumentation"

    Un pacchetto di test Instrumentation valido produce un output come il seguente:

    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

    Per ulteriori informazioni, consulta Strumentazione per Android e AWS Device Farm.

INSTRUMENTATION_TEST_PACKAGE_AAPT_DUMP_XMLTREE_FAILED

In presenza del seguente messaggio, attenersi alla procedura indicata per risolvere il problema.

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.

Durante il processo di convalida del caricamento, Device Farm analizza le informazioni dall'albero di analisi XML per un file XML contenuto nel pacchetto utilizzando il seguente comando:. aapt dump xmltree <path to your package> AndroidManifest.xml

Controllare che questo comando possa essere eseguito correttamente sul pacchetto di test Instrumentation.

Nel seguente esempio, il nome del pacchetto è app-debug-android. Test-unaligned.apk

  • Copiare il pacchetto di test nella directory di lavoro, quindi eseguire il comando seguente:

    $ aapt dump xmltree app-debug-androidTest-unaligned.apk AndroidManifest.xml

    Un pacchetto di test Instrumentation valido produce un output come il seguente:

    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")

    Per ulteriori informazioni, consulta Strumentazione per Android e AWS Device Farm.

INSTRUMENTATION_TEST_PACKAGE_TEST_PACKAGE_NAME_VALUE_MISSING

In presenza del seguente messaggio, attenersi alla procedura indicata per risolvere il problema.

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."

Durante il processo di convalida del caricamento, Device Farm analizza il valore del nome del pacchetto dall'output del seguente comando:. aapt debug badging <path to your package>

Controllare che sia possibile eseguire questo comando nel pacchetto di test Instrumentation e che sia possibile trovare il valore del nome del pacchetto.

Nel seguente esempio, il nome del pacchetto è app-debug-android. Test-unaligned.apk

  • Copiare il pacchetto di test nella directory di lavoro, quindi eseguire il comando seguente:

    $ aapt debug badging app-debug-androidTest-unaligned.apk | grep "package: name="

    Un pacchetto di test Instrumentation valido produce un output come il seguente:

    package: name='com.amazon.aws.adf.android.referenceapp.test' versionCode='' versionName='' platformBuildVersionName='5.1.1-1819727'

    Per ulteriori informazioni, consulta Strumentazione per Android e AWS Device Farm.

Approfondimenti sui test

Se scegli di utilizzare i test Insights, Device Farm genera un report riepilogativo per l'esecuzione e per ogni job correlato. Se il servizio non è in grado di generare il report, lo stato del report di Insights è SKIPPED o ERRORED e il messaggio del rapporto ne spiega il motivo. Quando si generano informazioni dettagliate per i test di strumentazione possono comparire i seguenti messaggi.

Il lavoro non è stato completato

Unable to generate test insights because the job was status.

Il processo è terminato in uno stato non riuscito (dove si status trovaSTOPPED, oSKIPPED)ERRORED, quindi non c'era alcun risultato da riepilogare. Un'esecuzione che termina con uno stato fallito riceve comunque informazioni.

Per risolvere questo problema, analizza il motivo per cui il processo non è stato completato. In molti casi, il message campo stesso del lavoro potrebbe spiegare perché il lavoro non è stato completato.

I risultati non contenevano casi di test

Test insights could not be generated. The test spec output file was parsed successfully but contained no test cases.

L'artefatto dei risultati è stato analizzato correttamente ma non conteneva alcun test case.

Per risolvere questo problema, verifica che la suite di test includa almeno un test case e che i risultati siano archiviati correttamente in. $DEVICEFARM_LOG_DIR

L'output del test supera la dimensione massima supportata

Unable to generate test insights: test output "test spec output" exceeds the maximum supported size of 1GB.

L'output delle specifiche del test è maggiore di 1 GB.

Per risolvere questo problema, esaminate i comandi che generano un numero elevato di righe nell'output delle specifiche di test. Quindi, rimuovili o modificali.

Non è stato trovato alcun output di strumentazione nell'output delle specifiche di test

Unable to generate test insights. No instrumentation test output was found in the test spec output file.

Il file di output delle specifiche di test era presente ma non conteneva linee di output della strumentazione.

Per risolvere questo problema, assicurati che il tuo framework emetta l'output della strumentazione nel file delle specifiche di stdout test.