2015-07-31 7 views
23

Sto tentando di impostare un modulo di test unitario come descritto nel post del blog di Android Studio. Tuttavia, fare una build gradle non riesce a dirmi "Configurazione con nome" debug-classes "non trovata". Debug è il nome del targetVariant che sta cercando di costruire, ma non capisco cosa sta andando storto qui.Modulo Test Android (Gradle Plugin 1.3) non funziona: "Debug-classes not found"

Ecco il file gradle del mio modulo di test.

apply plugin: 'com.android.test' 

android { 
compileSdkVersion 22 
buildToolsVersion "22.0.1" 

targetProjectPath ':app' 
targetVariant 'debug' 
}  

Questo è il blogpost che descrive la nuova funzionalità del modulo di test. http://android-developers.blogspot.com/2015/07/get-your-hands-on-android-studio-13.html

Sto utilizzando il plug-in Gradle v1.3.0

+0

Si sta utilizzando Gradle plug 1.3.0? – EpicPandaForce

+0

Sì, lo sto usando. L'ho menzionato nel titolo, ma non nel post stesso. –

+0

Il problema sembra essere che sto usando i sapori di build, quindi non c'è nulla chiamato "deubg". Tuttavia, al mio primo tentativo, non ho potuto risolvere il problema indicando targetVariant ai miei sapori di build. Approfondirò questo più brevemente ... –

risposta

21

ero anche curioso di separare il codice app e il codice di prova e ho avuto difficoltà a capirlo. Osservo la traccia dello stack e ho trovato il DependencyManager (riga 238) con un TODO per sistemarlo nel gradle.

1) Hai ragione circa la costruzione flavors.You necessario inserire la variante corretta

targetVariant '<flavor>Debug' 

esempio

targetVariant 'flavor1Debug' 

2) È inoltre necessario modificare il modulo build.gradle di targetProjectPath. Aggiungere il seguente frammento:

android { 

    // ... 

    publishNonDefault true 

    // ... 

} 

che pubblica tutte le varianti costruire! È disabilitato per impostazione predefinita a causa di alcune limitazioni del gradle.

+0

"publishNotdefault true" è stata la risposta che ho ottenuto anche nella community degli strumenti per gli sviluppatori Android: https : //plus.google.com/+MariusBardan/posts/79MM5tPBFyp. Ha funzionato per me. –

+0

C'è qualche ragione per non usare la versione 'release' come targetVariant? –

+1

@AlexCrist _debug_ è il tipo di build predefinito ** non minificato ** per il test poiché richiede meno tempo per essere compilato ed eseguito (riducendo i cicli di test). Ma ovviamente è anche bello testare la versione _release_ specialmente quando ** minifying/offuscando ** o avendo qualsiasi altra configurazione nel blocco release. Quindi _debug_ per i test frequenti e _release_ a fianco. –