2015-02-23 21 views
5

Google ha recentemente rilasciato il supporto experimental per eseguire junit su JVM locale in Android Studio. Volevo provarlo e, dal momento che sto sviluppando la mia app per Android con Kotlin, voglio che anche le mie classi di test vengano scritte in Kotlin.Supporto JUnit sperimentale in Android + Kotlin non funzionante

Sfortunatamente, non riesco a farlo funzionare. Ho aggiornato la mia configurazione Gradle:

sourceSets { 
    main.java.srcDirs += 'src/main/kotlin' 
    androidTest.java.srcDirs += 'src/androidTest/kotlin' 
    test.java.srcDirs += 'src/test/kotlin'//this line was added 
} 
testCompile 'junit:junit:4.12' 
testCompile "org.mockito:mockito-core:1.9.5" 

Android Studio riconosce cartella di prova.

Questa è la mia semplice classe di test solo per vedere se funziona

public class MyFirstTestClass { 

    [Test] fun firstTest() { 
     println("I am OK") 
     Assert.assertTrue("".isEmpty()) 
    } 
} 

Se provo a farlo funzionare io ottenere il seguente messaggio

Classe non trovata: 'com.example.MyFirstTestClass '

risposta

4

Purtroppo, il plugin kotlin-gradle non supporta i test di Junit per Android in questo momento.

EDIT: il supporto Junit per Android è stata aggiunta nel Kotlin M12

+0

Per completezza, è comunque possibile utilizzare unit test basati su Java per testare le tue classi Kotlin. – m00sey

+2

c'è un modo per generare automaticamente un test java java per una classe kotlin? ** Vai a -> Test ** non è disponibile per me per le classi ** .kt ** – ZakTaccardi

+0

In [Annuncio Kotlin Beta 1 RC] (http://blog.jetbrains.com/kotlin/2015/10/kotlin -1-0-beta-candidate-is-out /) è stato detto che "L'ultimo ma non meno importante, l'esperienza di test delle unità ora è molto più agevole. Elenco di miglioramenti: azione" Crea test ", i test sono eseguibili tramite icone di grondaia, navigazione tra test e soggetti del test (⇧⌘T/⇧^T) e anche quickfix per aggiungere dipendenze su JUnit e TestNG quando necessario "... che fornisce le funzionalità che stai cercando con i test delle unità di navigazione. @ZakTaccardi –