import Ġcom . av ito . instrumentation . configuration . Instrumentation Plugin Configuration . Gradle Instrumentation Plugin Configuration Ċ import Ġcom . av ito . instrumentation . configuration . target . scheduling . Scheduling Configuration Ċ import Ġcom . av ito . instrumentation . configuration . target . scheduling . quota . Quota Configuration Ċ import Ġcom . av ito . instrumentation . configuration . target . scheduling . reservation . Tests Based Devices Reservation Configuration Ċ import Ġcom . av ito . instrumentation . reservation . request . Device . Em ulator . Em ulator 2 2 Ċ import Ġcom . av ito . instrumentation . reservation . request . Device . Em ulator . Em ulator 2 7 Ċ import Ġcom . av ito . kotlin . dsl . get Mandatory String Property Ċ import Ġcom . av ito . kotlin . dsl . get Optional String Property Ċ Ċ plugins Ġ{ ĊĠĠĠ Ġid (" com . android . application ") ĊĠĠĠ Ġid (" kotlin - android ") ĊĠĠĠ Ġid (" com . av ito . android . instrumentation - tests ") Ċ } Ċ Ċ val Ġkotlin Version : ĠString Ġby Ġproject Ċ val Ġandroid X Version : ĠString Ġby Ġproject Ċ val Ġs entry Version : ĠString Ġby Ġproject Ċ val Ġtruth Version : ĠString Ġby Ġproject Ċ val Ġokhttp Version : ĠString Ġby Ġproject Ċ Ċ // todo Ġcleaner Ġway Ġto Ġget Ġthese Ġproperties Ċ val Ġbuild Tools Ġ= Ġrequire NotNull ( project . properties [" build Tools Version "]). toString () Ċ val Ġcompile Sdk Ġ= Ġrequire NotNull ( project . properties [" compile Sdk Version "]). toString (). toInt () Ċ val Ġtarget Sdk Ġ= Ġrequire NotNull ( project . properties [" target Sdk Version "]). toString () Ċ val Ġmin Sdk Ġ= Ġrequire NotNull ( project . properties [" min Sdk Version "]). toString () Ċ Ċ android Ġ{ ĊĠĠĠ Ġbuild Tools Version ( build Tools ) ĊĠĠĠ Ġcompile Sdk Version ( compile Sdk ) ĊĊĠĠĠ Ġcompile Options Ġ{ ĊĠĠĠĠĠĠĠ Ġsource Compatibility Ġ= ĠJava Version . VERSION _ 1 _ 8 ĊĠĠĠĠĠĠĠ Ġtarget Compatibility Ġ= ĠJava Version . VERSION _ 1 _ 8 ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġdefault Config Ġ{ ĊĠĠĠĠĠĠĠ Ġmin Sdk Version ( min Sdk ) ĊĠĠĠĠĠĠĠ Ġtarget Sdk Version ( target Sdk ) ĊĊĠĠĠĠĠĠĠ Ġversion Name Ġ= Ġ" 1 . 0 " ĊĠĠĠĠĠĠĠ Ġversion Code Ġ= Ġ 1 ĊĠĠĠĠĠĠĠ Ġtest Instrumentation Runner Ġ= Ġ" com . av ito . android . ui . test . Test App Runner " ĊĊĠĠĠĠĠĠĠ Ġtest Instrumentation Runner Arguments ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmap Of ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" plan Slug " Ġto Ġ" Android Test App ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" un necessary Url " Ġto Ġ" https :// localhost " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġtest Options Ġ{ ĊĠĠĠĠĠĠĠ Ġexecution Ġ= Ġ" AND RO IDX _ TEST _ OR CHE STR ATOR " ĊĠĠĠ Ġ} Ċ } Ċ Ċ dependencies Ġ{ ĊĠĠĠ Ġimplementation (" com . google . android . gms : play - services - maps : 1 7 . 0 . 0 ") ĊĠĠĠ Ġimplementation (" org . jetbrains . kotlin : kotlin - stdlib :$ kotlin Version ") ĊĊĠĠĠ Ġimplementation (" android x . appcompat : appcompat :$ android X Version ") ĊĠĠĠ Ġimplementation (" android x . recyclerview : recyclerview :$ android X Version ") ĊĠĠĠ Ġimplementation (" com . google . android . material : material :$ android X Version ") ĊĊĠĠĠ Ġandroid Test Implementation ( project (": test - in house - runner ")) Ġ{ Ġis Trans itive Ġ= Ġfalse Ġ} ĊĠĠĠ Ġandroid Test Implementation ( project (": test - report ")) Ġ{ Ġis Trans itive Ġ= Ġfalse Ġ} ĊĠĠĠ Ġandroid Test Implementation ( project (": ui - testing - core ")) ĊĠĠĠ Ġandroid Test Implementation (" io . sentry : sentry :$ sentry Version ") ĊĠĠĠ Ġandroid Test Implementation (" com . google . truth : truth :$ truth Version ") ĊĠĠĠ Ġandroid Test Implementation (" com . squareup . okhttp 3 : mock webserver :$ okhttp Version ") Ċ } Ċ Ċ tasks . get ByName (" build "). depends On ("$ path : instrumentation Ui ") Ċ Ċ extensions . getBy Type < Gradle Instrumentation Plugin Configuration >(). apply Ġ{ ĊĊĠĠĠ Ġ// todo Ġmake Ġthese Ġparams Ġoptional Ġfeatures Ġin Ġplugin ĊĠĠĠ Ġreport Api Url Ġ= Ġproject . get Optional String Property (" av ito . report . url ") Ġ?: Ġ" http :// stub " ĊĠĠĠ Ġreport Api Fallback Url Ġ= Ġproject . get Optional String Property (" av ito . report . fallback Url ") Ġ?: Ġ" http :// stub " ĊĠĠĠ Ġreport Viewer Url Ġ= Ġproject . get Optional String Property (" av ito . report . viewer Url ") Ġ?: Ġ" http :// stub " ĊĠĠĠ Ġregistry Ġ= Ġproject . get Optional String Property (" av ito . registry ") Ġ?: Ġ" registry " ĊĠĠĠ Ġs entry D sn Ġ= Ġproject . get Optional String Property (" av ito . instrument a ion . sentry . dsn ") Ġ?: Ġ" stub " ĊĠĠĠ Ġslack Token Ġ= Ġproject . get Optional String Property (" av ito . slack . token ") Ġ?: Ġ" stub " ĊĠĠĠ Ġfile Storage Url Ġ= Ġproject . get Optional String Property (" av ito . file Storage . url ") Ġ?: Ġ" http :// stub " ĊĊĠĠĠ Ġoutput Ġ= Ġproject . root Project . file (" outputs /${ project . name }/ instrumentation "). path ĊĊĠĠĠ Ġlog cat Tags Ġ= Ġset Of ( ĊĠĠĠĠĠĠĠ Ġ" UIT est Runner :* ", ĊĠĠĠĠĠĠĠ Ġ" Activity Manager :* ", ĊĠĠĠĠĠĠĠ Ġ" Report Test Listener :* ", ĊĠĠĠĠĠĠĠ Ġ" Storage Json Transport :* ", ĊĠĠĠĠĠĠĠ Ġ" Test Report :* ", ĊĠĠĠĠĠĠĠ Ġ" Video Capture Listener :* ", ĊĠĠĠĠĠĠĠ Ġ" TestRunner :* ", ĊĠĠĠĠĠĠĠ Ġ" System Dialog s Manager :* ", ĊĠĠĠĠĠĠĠ Ġ" ito . android . de :* ", Ġ// Ð¿ Ð¾ ĠÑįÑĤ Ð¾Ð¼Ñĥ ĠÑĤ Ñį Ð³ Ñĥ ĠÑģÐ¸ÑģÑĤÐµÐ¼ Ð° ĠÐ¿ Ð¸ ÑĪ ÐµÑĤ ĠÐ» Ð¾Ð³ Ð¸ ĠÐ¾Ð± ĠÐ¸ÑģÐ¿Ð¾Ð»ÑĮÐ·Ð¾Ð² Ð°Ð½Ð¸ Ð¸ Ġhidden / restricted Ġapi Ġhttps :// developer . android . com / distribute / best - practices / develop / re strictions - non - sdk - interfaces ĊĠĠĠĠĠĠĠ Ġ"* : E " ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġinstrument ation Params Ġ= Ġmap Of ( ĊĠĠĠĠĠĠĠ Ġ" video Recording " Ġto Ġ" failed ", ĊĠĠĠĠĠĠĠ Ġ" job Slug " Ġto Ġ" Functional Tests " ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġconfigurations Container . register (" ui ") Ġ{ ĊĠĠĠĠĠĠĠ Ġtry To Re Run On Target Branch Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġreport Skipped Tests Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġrer un Failed Tests Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġreport Fl aky Tests Ġ= Ġtrue ĊĊĠĠĠĠĠĠĠ Ġtargets Container . register (" api 2 2 ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdevice Name Ġ= Ġ" API 2 2 " ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġscheduling Ġ= ĠS cheduling Configuration (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġquota Ġ= ĠQu ota Configuration (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġretry Count Ġ= Ġ 1 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġminimum Success Count Ġ= Ġ 1 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreservation Ġ= ĠTests Based Devices Reservation Configuration (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdevice Ġ= ĠEm ulator 2 2 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmaximum Ġ= Ġ 5 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġminimum Ġ= Ġ 2 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtests Per Em ulator Ġ= Ġ 3 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġtargets Container . register (" api 2 7 ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdevice Name Ġ= Ġ" API 2 7 " ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġscheduling Ġ= ĠS cheduling Configuration (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġquota Ġ= ĠQu ota Configuration (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġretry Count Ġ= Ġ 1 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġminimum Success Count Ġ= Ġ 1 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreservation Ġ= ĠTests Based Devices Reservation Configuration (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdevice Ġ= ĠEm ulator 2 7 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmaximum Ġ= Ġ 5 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġminimum Ġ= Ġ 2 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtests Per Em ulator Ġ= Ġ 3 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ configurations . all Ġ{ ĊĠĠĠ Ġif Ġ( name . contains (" Android Test Runtime Classpath ")) Ġ{ ĊĠĠĠĠĠĠĠ Ġresolution Strategy Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġforce (" org . jetbrains : annotations : 1 6 . 0 . 1 ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ