2015-05-22 6 views
8

Próbuję przeprowadzić test jednostkowy w mojej aplikacji Android, a to jest prosty samouczek testowy, co robię.Dlaczego Android Studio mówi "Zdarzenia testowe nie zostały odebrane"?

import static org.junit.Assert.*; 
import org.junit.Test; 
import org.junit.runner.RunWith; 
import org.robolectric.RobolectricTestRunner; 

@RunWith(RobolectricTestRunner.class) 
public class ServerListManagerTest extends AndroidTestCase{ 

    @Test 
    public void testTrueIsTrue() throws Exception { 
    assertEquals(true, true); 
    } 
} 

Katalog jest tak, src\main\androidTest\java\some packages\ServerListManagerTest.java

Próbowałem zmianę katalogu tego, a także zbudować konfigurację. , ale studio android wciąż nie rozpoznaje testu mojej jednostki, mimo że kompilacja się powiodła.

To mój build.gradle w aplikacji

apply plugin: 'com.android.application' 

android { 
    compileSdkVersion 21 
    buildToolsVersion "21.1.2" 

    defaultConfig { 
     applicationId "com.kaist.se.pmpapp" 
     minSdkVersion 16 
     targetSdkVersion 21 
     versionCode 1 
     versionName "1.0" 
    } 

buildTypes { 
     release { 
      minifyEnabled false 
      proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
     } 
     } 
sourceSets { main { java.srcDirs = ['src/main/java', 'src/androidTest/java'] } } } 



dependencies { 
    compile fileTree(dir: 'libs', include: ['*.jar']) 
    compile 'com.android.support:appcompat-v7:22.1.1' 
    androidTestCompile 'org.robolectric:robolectric:2.4' 
    androidTestCompile 'junit:junit:4.12' 
    androidTestCompile group: 'junit', name: 'junit', version: '4.12' 
    } 

Co jest złego w moim kodu ????

Odpowiedz

19

Zakładam, że używasz Androida Studio w wersji 1.2, najnowszej w tej chwili.

Nie sądzę, że coś jest nie tak z twoim kodem. Według Jason Atwood's post, problem wydaje się być związany ze stopniowaniem buforowania poprzednich wyników i nie przeprowadzania ich ponownie. Jeśli spojrzysz na "konsolę Gradle", zobaczysz wszystko, co mówi "UP-TO-DATE". Jednak jego sugestia dodania opcji "--rerun-tasks" do parametrów skryptu nie była dla mnie wystarczająca.

W Ponadto do „--rerun-zadania”, musiałem wyłączyć w procesie kompilacji i zmusić go do wywołania zewnętrznego gradlew narzędzia. Aby to zrobić, przejdź do ...

File > Settings > Build, Execution, Deployment > Compiler 

Następnie odznacz opcję "Użyj budowania w trakcie procesu". Mam nadzieję, że przyszłe wydanie Androida Studio naprawi to i możemy ponownie włączyć tę opcję.

+0

Wypróbowałem twoją sugestię i teraz widzę komunikat "Nie znaleziono testów dla podanych elementów", chociaż mój kod testowy jest taki sam jak powyżej. –

+1

Przynajmniej jest to inny problem, więc robimy postępy. Uważam, że twój test znajduje się na niewłaściwym katalogu. Mam moje w 'src/test/java/...' (tj. Równolegle do _main_). 'src/androidTest/java' służy do testów uruchamianych na samym urządzeniu. –

+3

W raporcie testy jednostkowe zakończyły się pomyślnie, ale AS powiedział, że zdarzenia testowe nie zostały odebrane. Po prostu wyłączyłem opcję "Użyj budowania w procesie" zgodnie z twoją radą, a teraz widzę wynik w AS. Nienawidzę tego rodzaju rzeczy w narzędziach. Dlaczego nie mogą po prostu pracować zgodnie z oczekiwaniami po wyjęciu z pudełka, bez godzin spędzonych przez użytkownika na nieznanych błędach, a następnie w końcu przeszukując internet w poszukiwaniu poprawki. –