2015-02-07 13 views
5

Zastosowałem następujące instrukcje: https://code.google.com/p/android-test-kit/wiki/AndroidJUnitRunnerUserGuide do konfiguracji testów JUnit4.Runner AndroidJunit4.class w Android Studio nie wywołuje metod @Test

W szczególności postępuję zgodnie z instrukcjami dotyczącymi korzystania z Junit4 z ActivityInstrumentationTestCase2, jednak po uruchomieniu testów w Android Studio metody z komentarzami @Test nie są wykonywane. Jeśli poprzedzam metody "testem", działa to jednak nie to, czego oczekuję w testach JUnit 4.

Czy ktoś napotkał ten problem?

Pozdrawiam,

+0

Czy dodałeś adnotację '@RunWith (AndroidJUnit4.class) do klasy? Zobacz https://github.com/commonsguy/cw-omnibus/blob/v6.4/Testing/JUnit4/src/androidTest/java/com/commonsware/android/abf/test/DemoActivityTest.java – CommonsWare

+0

Dziękuję za odpowiedź . Tak, mam tę adnotację, jak na wiki, i mam również biegacza w moim gradold ​​"testInstrumentationRunner" android.support.test.runner.AndroidJUnitRunner "". Niestety nadal nie można znaleźć metod. (Jeśli moja klasa nie rozszerza ActivityInstrumentationTestCase2, to działa, ale muszę to rozszerzyć, aby uzyskać dostęp do api Android SDK). – user3521637

Odpowiedz

2

znalazłem musiałem dodać pojedynczą metodę testową tak:

public void test() {} 

Następnie wszystkich moich prawdziwych testów są opatrzone @Test

+0

Dzięki ericharlow, stwierdziłem, że dodanie testu zerowego takiego jak ten ironicznie sprawiło, że zadziałało (stąd mam +1 twoja odpowiedź), jednak nie byłem z tego zadowolony i od tego czasu zdecydowałem się przenieść AS 1.2.2 z wersją Androida Plugin: 1.2.3 i nie jest to już konieczne. – user3521637

6

Nie ma potrzeby, aby rozszerzyć ActivityInstrumentationTestCase2 już. Jeśli potrzebujesz dostępu do Activity, w bibliotece testów testowych istnieje ActivityTestRule. Zamiast powiększenia ActivityInstrumentationTestCase2 można teraz zrobić:

@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

Dziękuję Luke, że przeniosłem się do nowego wsparcia testowania w AS (testy jednostkowe i testy instrumentaton), a następnie przeszedłem do korzystania z reguł i wszystko dobrze. – user3521637

+0

Potwierdzone przez ostatnie przykłady wydane i przedstawione [tutaj] (https://plus.google.com/u/0/+AndroidDevelopers/posts/NPagF6bpHsv) – lechuckcaptain

+0

Dzięki Luke, to działa. –

2

Poprawiono gdy określona w pliku app/build.gradle test-biegacz:

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

natknąłem się ten błąd, gdy próbuje uruchomić indywidualną metodę badawczą w Android Studio (klikając prawym przyciskiem myszy i wybierając z menu kontekstowego), a nie całej klasy.

Uruchomienie całej klasy spowodowało uruchomienie testu zgodnie z oczekiwaniami.

Powiązane problemy