2015-05-22 20 views
8

Sto provando a unit test nella mia applicazione Android, e questo è il tutorial di prova semplice quello che sto facendo.Perché Android Studio dice "Gli eventi di test non sono stati ricevuti"?

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); 
    } 
} 

La directory è come questo, src\main\androidTest\java\some packages\ServerListManagerTest.java

Ho provato a cambiare directory di questo, e anche costruire la configurazione. ma Android Studio non riconosce ancora il mio test unitario sebbene la costruzione abbia avuto successo.

Questo è il mio build.gradle in app,

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' 
    } 

Cosa c'è di sbagliato nel mio codice ????

risposta

19

Suppongo tu stia utilizzando la versione 1.2 di Android Studio, l'ultima in questo momento.

Non penso che ci sia qualcosa che non va nel tuo codice. In base a Jason Atwood's post, il problema sembra correlato al gradle caching dei risultati precedenti e non all'esecuzione di nuovo. Se guardi la "Console Gradle", vedrai tutto "UP-to-date". Tuttavia, il suo suggerimento di aggiungere l'opzione "--rerun-tasks" ai parametri dello script non era sufficiente per me.

In Oltre a "--rerun-operazioni", ho dovuto disattivare la configurazione in-process e costringerlo a chiamare il gradlew strumento esterno. Per fare questo, andare a ...

File > Settings > Build, Execution, Deployment > Compiler 

Quindi deselezionare l'opzione "Usa in-processo di generazione". Speriamo che una versione futura di Android Studio risolverà questo problema e possiamo riattivare questa opzione.

+0

Ho provato il tuo suggerimento e ora posso vedere il messaggio "Nessun test trovato per include include", anche se il mio codice di test è lo stesso sopra. –

+1

Almeno è un problema diverso, quindi stiamo facendo progressi. Credo che il tuo test sia nella directory sbagliata. Ho il mio in 'src/test/java/...' (cioè parallelo a _main_). 'src/androidTest/java' è per test eseguiti sul dispositivo stesso. –

+3

Nel report i test unitari sono andati a buon fine ma AS ha detto che gli eventi di test non sono stati ricevuti. Ho appena disabilitato "Usa build in-process" secondo il tuo consiglio, e ora vedo il risultato in AS. Ho paura di odiare questo genere di cose con gli strumenti. Perché non possono semplicemente funzionare come previsto, senza ore di spesa da parte dell'utente per errori sconosciuti e quindi alla ricerca sul Web di una correzione. –

Problemi correlati