75 votes

L’exécution de l’instrumentation a échoué en raison du «Processus en panne.

Je voulais lancer le test suivant:

 package com.xxx.yyy;

import android.content.Context;
import androidx.test.InstrumentationRegistry;
import androidx.test.runner.AndroidJUnit4;

import org.junit.Test;
import org.junit.runner.RunWith;

import static org.junit.Assert.*;

/**
 * Instrumented test, which will execute on an Android device.
 *
 * @see <a href="http://d.android.com/tools/testing">Testing documentation</a>
 */
@RunWith(AndroidJUnit4.class)
public class ExampleInstrumentedTest {
    @Test
    public void useAppContext() {
        // Context of the app under test.
        Context appContext = InstrumentationRegistry.getTargetContext();

        assertEquals("com.xxx.yyy", appContext.getPackageName());
    }
}

Mais j'obtiens l'erreur dans la console:

 $ adb shell am instrument -w -r   -e debug false -e class 'com.xxx.yyy.ExampleInstrumentedTest' com.xxx.yyy.test/android.support.test.runner.AndroidJUnitRunner
Client not ready yet..
Started running tests
Test running failed: Instrumentation run failed due to 'Process crashed.'
Empty test suite.

Je ne peux pas comprendre pourquoi cela ne fonctionne pas.

Voici mon fichier gradle:

 apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'

apply plugin: 'org.greenrobot.greendao' // das kann dann später weg
//apply plugin: 'kotlin-kapt' // if using Kotlin
//apply plugin: 'io.objectbox'


android {
    compileSdkVersion 28
    defaultConfig {
        applicationId "com.xxx.yyy"
        minSdkVersion 21
        targetSdkVersion 28    
        versionCode 130
        versionName "1.3.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
        vectorDrawables.useSupportLibrary = true
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

greendao {
    schemaVersion 4
}

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation 'androidx.appcompat:appcompat:1.0.0'
    implementation 'com.google.android.material:material:1.0.0'
    implementation 'androidx.vectordrawable:vectordrawable:1.0.0'
    implementation 'androidx.legacy:legacy-support-v4:1.0.0'
    implementation 'androidx.constraintlayout:constraintlayout:2.0.0-alpha2'
    implementation 'org.greenrobot:greendao:3.2.2'
    implementation 'com.google.firebase:firebase-core:16.0.3'
    implementation 'com.google.firebase:firebase-ads:15.0.1'
    testImplementation 'junit:junit:4.12'
    implementation 'com.github.PhilJay:MPAndroidChart:v3.0.2'
    implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
    implementation 'com.android.support.constraint:constraint-layout:1.1.3'
    androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
    androidTestImplementation 'com.android.support.test:runner:1.0.2'
    androidTestImplementation 'com.android.support.test:rules:1.0.2'
}

apply plugin: 'com.google.gms.google-services'

Aucune suggestion?

115voto

gurehbgui Points 2872

J'ai trouvé la solution par moi-même. J'ai mis à jour vers AndroidX, c'est pourquoi j'avais également besoin de mettre à jour mon build.gradle à partir de:

 testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"

à

 testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"

88voto

asullaherc Points 729

J'ai eu l'erreur:

 Test running failed: Instrumentation run failed due to 'Process crashed.'

Dans mon cas, la console de test Android n'a montré que l'erreur ci-dessus sans aucun détail.

Mais dans le logcat, l'erreur complète a été affichée. Dans mon cas, j'ai oublié d'ajouter l'app_id AdMob dans AndroidManifest.xml

N'oubliez donc pas de vérifier le logcat pour plus de détails sur les erreurs!

7voto

XccX Points 41
androidTestImplementation "androidx.test.espresso:espresso-core:3.3.0"
androidTestImplementation "androidx.test:runner:1.3.0"
androidTestImplementation "androidx.test:core:1.3.0"
androidTestImplementation "androidx.test.ext:junit:1.1.2"
androidTestImplementation "androidx.test:rules:1.3.0"

sauf pour la configuration androidx.test.runner.AndroidJunitRunner, veuillez également vérifier la dépendance. Le code ci-dessus fonctionne pour moi.

5voto

musterjunk Points 302

J'ai donc eu les mêmes symptômes, mais après avoir apporté toutes ces modifications, j'ai trouvé que la configuration suivante dans mon fichier build.gradle de projet était un problème

 buildTypes{
     debug {
        debuggable true
        minifyEnabled true
        shrinkResources true
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }

semble que minifyEnable et shrinkResources se comportent différemment après la mise à niveau vers androidx, cela aurait pu se produire plus tôt, mais je viens de le réaliser maintenant. Commenter les lignes a corrigé mes problèmes de Aucun test trouvé.

 buildTypes{
     debug {
        debuggable true
        //minifyEnabled true
        //shrinkResources true
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }

3voto

Izzy Stannett Points 102

J'ai eu la même erreur après la mise à jour de JUnit4 à partir de:

 androidTestImplementation 'junit:junit:4.12

à

 androidTestImplementation 'junit:junit:4.13

L'erreur a disparu lorsque j'ai rétrogradé à:

 androidTestImplementation 'junit:junit:4.12

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X