Il mio progetto ha 2 diversi gruppi di test. Un gruppo viene eseguito solo con il valore predefinito AndroidJUnitRunner
mentre l'altro deve essere eseguito con un'implementazione personalizzata .Come cambiare/cambiare testInstrumentationRunner in modo dinamico con gradle
Attualmente mi passare il testInstrumentationRunner
modificando il build.gradle
ogni volta che ho bisogno di eseguire l'altro gruppo di test:
android{
defaultConfig {
//testInstrumentationRunner "my.custom.TestRunner"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
}
So che i sapori possono avere il proprio testInstrumentationRunner
ma il mio attuale applicazione ha già 2 flavourDimensions
. L'utilizzo di sapori è in realtà destinato a versioni diverse di un'app. Ho bisogno di 2 versioni dell'applicazione di test, entrambe testano la stessa app con diversi testInstrumentationRunner
s.
Ho provato a cambiare il testInstrumentationRunner
iterando su tutte le varianti di test. Ci sono in realtà molteplici testInstrumentationRunner
proprietà:
android.testVariants.all { TestVariant variant ->
//readonly
variant.variantData.variantConfiguration.instrumentationRunner
variant.variantData.variantConfiguration.defaultConfig.testInstrumentationRunner
}
Ma appena android.testVariants
si chiama la costruzione ottiene configurato e tutte le modifiche non si riflettono nella build.
Come posso modificare dinamicamente TestInstrumentationRunner (da un plugin gradle)?
Preferirei avere 2 compiti gradle diversi, ognuno con un diverso testInstrumentationRunner
ma testando la stessa variante. Poiché intendo creare un plugin gradle, la soluzione dovrebbe funzionare anche come plugin.
Il plug-in Android è già stato configurato e utilizza testInstrumentationRunner dalla fase di configurazione. – thaussma