View a markdown version of this page

Résolution des problèmes liés aux tests d'instrumentation dans AWS Device Farm - AWS Device Farm

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Résolution des problèmes liés aux tests d'instrumentation dans AWS Device Farm

La rubrique suivante répertorie les messages d'erreur qui s'affichent pendant le chargement des tests Instrumentation et recommande des solutions permettant de résoudre chaque erreur.

Note

Pour les considérations importantes relatives à l'utilisation de tests d'instrumentation dans AWS Device Farm, consultezInstrumentation pour Android et AWS Device Farm.

Erreurs de téléchargement

Les erreurs suivantes peuvent se produire lorsque vous chargez vos tests d'instrumentation.

INSTRUMENTATION_TEST_PACKAGE_UNZIP_FAILED

Si le message suivant s'affiche, procédez comme suit pour corriger le problème.

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

Assurez-vous que vous pouvez décompresser le package de test sans erreur. Dans l'exemple suivant, le nom du package est Test-unaligned.apk app-debug-android.

  1. Copiez votre package de test dans votre répertoire de travail, puis exécutez la commande suivante :

    $ unzip app-debug-androidTest-unaligned.apk
  2. Pour trouver la structure arborescente du répertoire de travail une fois le package décompressé, exécutez la commande suivante :

    $ tree .

    Un package d'application Instrumentation valide doit générer une sortie similaire à la suivante :

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

    Pour de plus amples informations, veuillez consulter Instrumentation pour Android et AWS Device Farm.

INSTRUMENTATION_TEST_PACKAGE_AAPT_DEBUG_BADGING_FAILED

Si le message suivant s'affiche, procédez comme suit pour corriger le problème.

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.

Au cours du processus de validation du téléchargement, Device Farm analyse les informations issues de la sortie de la aapt debug badging <path to your package> commande.

Assurez-vous que vous pouvez exécuter avec succès cette commande sur votre package de test Instrumentation.

Dans l'exemple suivant, le nom du package est Test-unaligned.apk app-debug-android.

  • Copiez votre package de test dans votre répertoire de travail, puis exécutez la commande suivante :

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

    Un package d'application Instrumentation valide doit générer une sortie similaire à la suivante :

    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'

    Pour de plus amples informations, veuillez consulter Instrumentation pour Android et AWS Device Farm.

INSTRUMENTATION_TEST_PACKAGE_INSTRUMENTATION_RUNNER_VALUE_MISSING

Si le message suivant s'affiche, procédez comme suit pour corriger le problème.

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

Au cours du processus de validation du téléchargement, Device Farm analyse la valeur du lanceur d'instrumentation à partir de l'arbre d'analyse XML pour un fichier XML contenu dans le package. Vous pouvez utilisez la commande suivante : aapt dump xmltree <path to your package> AndroidManifest.xml.

Assurez-vous que vous pouvez exécuter cette commande sur votre package de test Instrumentation et trouver la valeur d'instrumentation avec succès.

Dans l'exemple suivant, le nom du package est Test-unaligned.apk app-debug-android.

  • Copiez votre package de test dans votre répertoire de travail, puis exécutez la commande suivante :

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

    Un package d'application Instrumentation valide doit générer une sortie similaire à la suivante :

    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

    Pour de plus amples informations, veuillez consulter Instrumentation pour Android et AWS Device Farm.

INSTRUMENTATION_TEST_PACKAGE_AAPT_DUMP_XMLTREE_FAILED

Si le message suivant s'affiche, procédez comme suit pour corriger le problème.

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.

Pendant le processus de validation du téléchargement, Device Farm analyse les informations de l'arbre d'analyse XML pour un fichier XML contenu dans le package à l'aide de la commande suivante :. aapt dump xmltree <path to your package> AndroidManifest.xml

Assurez-vous que vous pouvez exécuter avec succès cette commande sur votre package de test d'instrumentation.

Dans l'exemple suivant, le nom du package est Test-unaligned.apk app-debug-android.

  • Copiez votre package de test dans votre répertoire de travail, puis exécutez la commande suivante :

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

    Un package d'application Instrumentation valide doit générer une sortie similaire à la suivante :

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

    Pour de plus amples informations, veuillez consulter Instrumentation pour Android et AWS Device Farm.

INSTRUMENTATION_TEST_PACKAGE_TEST_PACKAGE_NAME_VALUE_MISSING

Si le message suivant s'affiche, procédez comme suit pour corriger le problème.

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

Pendant le processus de validation du téléchargement, Device Farm analyse la valeur du nom du package à partir de la sortie de la commande suivante :aapt debug badging <path to your package>.

Assurez-vous que vous pouvez exécuter cette commande sur votre package de test Instrumentation et trouver la valeur du nom du package avec succès.

Dans l'exemple suivant, le nom du package est Test-unaligned.apk app-debug-android.

  • Copiez votre package de test dans votre répertoire de travail, puis exécutez la commande suivante :

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

    Un package d'application Instrumentation valide doit générer une sortie similaire à la suivante :

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

    Pour de plus amples informations, veuillez consulter Instrumentation pour Android et AWS Device Farm.

Informations sur les tests

Lorsque vous choisissez de tester les informations, Device Farm génère un rapport résumé pour votre exécution et chaque tâche qui en découle. Si le service ne peut pas générer le rapport, le statut du rapport Insights est SKIPPED ouERRORED, et le message du rapport explique pourquoi. Les messages suivants peuvent apparaître lors de la génération d'informations pour les tests d'instrumentation.

La tâche n'a pas été exécutée jusqu'à son terme

Unable to generate test insights because the job was status.

La tâche s'est terminée sans succès (où status estSTOPPED, ouSKIPPED)ERRORED, il n'y avait donc aucun résultat à résumer. Une exécution qui se termine par un échec reçoit toujours des informations.

Pour résoudre ce problème, recherchez les raisons pour lesquelles la tâche n'a pas été exécutée jusqu'à son terme. Dans de nombreux cas, le message domaine du travail lui-même peut expliquer pourquoi le travail n'a pas été terminé.

Les résultats ne contenaient aucun cas de test

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

L'artefact de résultats a été analysé avec succès mais ne contenait aucun cas de test.

Pour résoudre ce problème, vérifiez que votre suite de tests inclut au moins un scénario de test et que les résultats sont correctement enregistrés sous$DEVICEFARM_LOG_DIR.

La sortie de test dépasse la taille maximale prise en charge

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

La sortie des spécifications de test est supérieure à 1 Go.

Pour résoudre ce problème, examinez les commandes qui génèrent un grand nombre de lignes dans la sortie de vos spécifications de test. Supprimez-les ou modifiez-les ensuite.

Aucune sortie d'instrumentation n'a été trouvée dans la sortie des spécifications de test

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

Le fichier de sortie des spécifications de test était présent mais ne contenait aucune ligne de sortie d'instrumentation.

Pour résoudre ce problème, assurez-vous que votre framework émet la sortie de l'instrumentation vers le fichier stdout de spécifications de test.