2015-02-07 5 views
5

Ich habe die folgenden Anweisungen angewendet: https://code.google.com/p/android-test-kit/wiki/AndroidJUnitRunnerUserGuide , um JUnit4-Tests einzurichten.AndroidJunit4.class-Runner in Android Studio ruft keine @Test-Methoden auf

Insbesondere befolge ich die Schritte, um Junit4 mit ActivityInstrumentationTestCase2 zu verwenden, aber wenn ich Tests in Android Studio ausführe, werden die @Test annotierten Methoden nicht ausgeführt. Wenn ich Methoden mit 'test' voranstelle, funktioniert das aber nicht, was ich für die JUnit 4-Tests erwarte.

Hat jemand dieses Problem festgestellt?

Grüße,

+0

Haben Sie der Klasse die Annotation @RunWith (AndroidJUnit4.class) hinzugefügt? Siehe https://github.com/commonsguy/cw-omnibus/blob/v6.4/Testing/JUnit4/src/androidTest/java/com/commonsware/android/abf/test/DemoActivityTest.java – CommonsWare

+0

Vielen Dank für Ihre Antwort . Ja, ich habe diese Annotation gemäß dem Wiki und ich habe auch den Runner in meinem Gradle Build "testInstrumentationRunner" android.support.test.runner.AndroidJUnitRunner "'. Leider immer noch nicht die Methoden aufgreifen. (Wenn meine Klasse ActivityInstrumentationTestCase2 nicht erweitert, dann funktioniert es, aber ich muss dies erweitern, um Zugriff auf das Android SDK zu erhalten.) – user3521637

Antwort

2

Ich fand ich so einen einzelnen Testmethode hinzuzufügen hatte:

public void test() {} 

mit Dann @Test

+0

Danke ericharlow, ich habe festgestellt, dass das Hinzufügen eines Null-Tests wie dieser ironisch funktioniert (daher bin ich +1) Ihre Antwort), aber ich war nicht glücklich damit und seitdem habe ich mich entschieden, AS 1.2.2 mit Android Plugin Version: 1.2.3 zu verschieben und das ist nicht mehr nötig. – user3521637

6

sind alle meine realen Tests kommentierten Es besteht keine Notwendigkeit zu verlängern ActivityInstrumentationTestCase2 mehr. Wenn Sie Zugriff auf eine Activity benötigen, ist in den Test-Support-Bibliotheken ActivityTestRule vorhanden. Statt ActivityInstrumentationTestCase2 verlängern Sie jetzt tun können:

@RunWith(AndroidJUnit4.class) 
public final class ActivityTest { 

    @Rule 
    public final ActivityTestRule<MainActivity> activityTestRule = 
     new ActivityTestRule<>(MainActivity.class); 

    @Test 
    public void useActivityInTest() { 
     Activity activity = activityTestRule.getActivity(); 
    } 
} 
+0

Dank Luke wechselte ich zur neuen Testunterstützung in AS (Unit Tests und Instrumentierungstests) und bin dabei auf Regeln zurückgegriffen und alles gut gelaufen. – user3521637

+0

Bestätigt durch die letzten veröffentlichten und präsentierten Beispiele [hier] (https://plus.google.com/u/0/+AndroidDevelopers/posts/NPagF6bpHsv) – lechuckcaptain

+0

Danke Luke, das funktioniert. –

2

behoben, wenn in der Datei app/build.gradle der Test-Läufer angegeben:

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

defaultConfig { 
    applicationId "com.domain.appname" 
    minSdkVersion 15 
    targetSdkVersion 23 
    versionCode 1 
    versionName "1.0" 

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

begegnete ich diesen Fehler beim Versuch, eine einzelne Testmethode in Android Studio (mit der rechten Maustaste und wählen sie aus dem Kontextmenü), anstatt die ganze Klasse zu laufen.

Das Ausführen der gesamten Klasse führte dazu, dass der Test wie erwartet ausgeführt wurde.