2015-05-06 13 views
20

non ho idea di come testare e stavo seguendo un tutorial.I Sto cercando di eseguire:eventi test non sono stati ricevuti - Android Studio

package name.company.sunshine.app.data; 

import android.test.AndroidTestCase; 

public class TestPractice extends AndroidTestCase { 
    /* 
     This gets run before every test. 
    */ 
    @Override 
    protected void setUp() throws Exception { 
     super.setUp(); 
    } 

    public void testThatDemonstratesAssertions() throws Throwable { 
     int a = 5; 
     int b = 3; 
     int c = 5; 
     int d = 10; 

     assertEquals("X should be equal", a, c); 
     assertTrue("Y should be true", d > a); 
     assertFalse("Z should be false", a == b); 

     if (b > d) { 
      fail("XX should never happen"); 
     } 
    } 

    @Override 
    protected void tearDown() throws Exception { 
     super.tearDown(); 
    } 
} 

ma ho da qualche parte in basso a sinistra, nella console Test events were not received. Che cosa sto facendo di sbagliato ? Devo eseguire qualcos'altro?

+1

Solo un po ', hai provato a rimuovere l'eccezione 'getta' dalla funzione di test? Prova a gestirlo nella tua funzione. Non ho dimestichezza con Unit Testing su Android, ma nei test della junit standard, l'eccezione deve essere esplicitamente dichiarata al tester dell'unità. '@Test (expected = Exception.class)' –

+0

Non ce l'ho, ma questo è esattamente ciò che stanno facendo nel tutorial e per qualche motivo non ottiene 'Gli eventi di test non sono stati ricevuti '. Cosa dovrei rimuovere e dove dovrei aggiungerlo? –

+0

Provare a modificare questa riga: 'public void testThatDemonstratesAssertions() genera Throwable {' a questo: 'public void testThatDemonstratesAssertions() {' e gestisce l'eccezione nel caso di test, se applicabile. Che tutorial segui? –

risposta

12

Quando si esegue il test selezionare l'opzione Test di Android.

Screen Shot

Il JUnit e le opzioni Gradle non deve essere utilizzato per questo tipo di test.

+0

Grazie amico, mi sta facendo impazzire. Stavo solo ricevendo "gli eventi di test non sono stati ricevuti", ma la tua risposta mi ha salvato dal vivo – emaleavil

3

Anche io sto facendo il corso e ho avuto lo stesso problema.

Dopo un'ora di armeggiare, penso di aver trovato la soluzione.

Non provare a eseguire i test case dall'intero pacchetto come hanno fatto nel video; devi eseguire da una singola classe e scegliere l'opzione AndroidTest. Non funziona con l'opzione Gradle.

Vedere la foto allegata. http://i.stack.imgur.com/6utLv.png

+0

Se collego il mio telefono e li eseguo in quel modo ho visto che Funziona. Ho solo pensato di poterli eseguire attraverso Gradle. Anche se provo l'opzione JUnit, finisco con "Exception in thread" main "java.lang.NoClassDefFoundError: junit/textui/ResultPrinter'. –

+0

Ho anche lo stesso messaggio di errore quando provo a correre con JUnit – JohnMadon1234567890

-1

proprio come diceva Matt Accola, se hai già selezionato l'opzione gradle e non riesci a trovare quel sottomenu nella sua risposta, dovrai andare a eseguire >> Modifica configurazione ... e quindi sotto il menu secondario Gradle, eliminare gli articoli (TestPractice & altri se esistenti) e quindi eseguire il test selezionando AnroidTest.

0

Questa soluzione è testata in studio Android 1.5.1

Se avete problemi con i test in studio Android perché l'uso in-processo di generazione è scomparsa, sono i seguenti:

<project-folder> 
|-- .idea 
    |-- workspace.xml 

basta aggiungere i seguenti componenti in cima, proprio all'interno del tag del progetto:

<project version="4"> 
    <component name="AndroidGradleBuildConfiguration"> 
    <option name="USE_EXPERIMENTAL_FASTER_BUILD" value="false" /> 
    </component> 
    ... 

</project> 
+0

Ho provato questo e funziona a volte. Altri, mostra lo stesso errore. – redwulf

+0

Dovresti anche aggiungere il comando '--rerun-tasks' ai parametri di script del target di test –

Problemi correlati