Android IllegalStateException Keine Instrumentierung registriert! Muss unter einer registrierenden Instrumentierung laufen

8

Ich habe Schwierigkeiten, diesen Funktionstest mit Espresso auf Android zu machen. Meine App ist eine Multdex-App, daher befolge ich die Anweisungen, die unter diesem Link ( Ссылка ) geschrieben wurden.

Ich habe meine build.gradle bereits so konfiguriert:

%Vor%

Ich habe das Run-Profil von Android Studio konfiguriert und die testInstrumentationRunner-Klasse auf com.android.test.runner.MultiDexTestRunner gesetzt.

Wenn ich den Befehl " adb shell pm list Instrumentierung " ausführe, habe ich folgende Ausgabe:

%Vor%

Aber ich erhalte immer noch diese Ausgabe, wenn ich versuche, meine Tests auszuführen:

%Vor%

Und das ist der einzigartige Test, den ich versuche auszuführen:

%Vor%

Der Fehler tritt direkt nach dem Aufruf von super.setUp () bei der setUp-Methode auf.

Ich habe die Instrumentierung in der AndroidManifest-Datei registriert:

%Vor%

Und das Problem, mit dem ich konfrontiert bin, ist nicht das gleiche wie hier beschrieben NullPointer Exception bei Verwendung von Espresso

    
Igor Regis 05.10.2015, 20:56
quelle

1 Antwort

9

Das Problem liegt bei diesen Gradel-Linien:

%Vor%

Sie benötigen ein MultiDexTestRunner , aber diese Klasse wird von InstrumentationTestRunner abgeleitet. Ihr Code benötigt einen Test-Runner, der von AndroidJUnitRunner

abgeleitet ist

Eine Lösung besteht darin, eine benutzerdefinierte TestRunner zu erstellen, die AndroidJUnitRunner erweitert und den MultiDex-Code implementiert:

%Vor%

Sie müssen nur eine einzelne Gradle-Zeile hinzufügen, die auf Ihre benutzerdefinierte testInstrumentationRunner verweist. Dadurch wird sichergestellt, dass das Build-System die Eigenschaften AndroidManifest.xml generiert, die zum Ausführen der Tests mit diesem Runner benötigt werden.

    
Ken Van Hoeylandt 04.01.2016, 11:31
quelle