@@ -170,9 +170,28 @@ var AndroidEmulatorManager = (function () {
170170 if ( this . targetEmulator )
171171 return Q ( this . targetEmulator ) ;
172172 else {
173- this . targetEmulator = testUtil_1 . TestUtil . readMochaCommandLineOption ( AndroidEmulatorManager . ANDROID_EMULATOR_OPTION_NAME , AndroidEmulatorManager . DEFAULT_ANDROID_EMULATOR ) ;
174- console . log ( "Using Android emulator named " + this . targetEmulator ) ;
175- return Q ( this . targetEmulator ) ;
173+ const deferred = Q . defer ( ) ;
174+ const targetAndroidEmulator = testUtil_1 . TestUtil . readMochaCommandLineOption ( AndroidEmulatorManager . ANDROID_EMULATOR_OPTION_NAME ) ;
175+ if ( ! targetAndroidEmulator ) {
176+ // If no Android simulator is specified, get the most recent Android simulator to run tests on.
177+ testUtil_1 . TestUtil . getProcessOutput ( "emulator -list-avds" , { noLogCommand : true , noLogStdOut : true , noLogStdErr : true } )
178+ . then ( ( Devices ) => {
179+ const listOfDevices = Devices . trim ( ) . split ( "\n" ) ;
180+ deferred . resolve ( listOfDevices [ listOfDevices . length - 1 ] ) ;
181+ } , ( error ) => {
182+ deferred . reject ( error ) ;
183+ } ) ;
184+ }
185+ else {
186+ // Use the simulator specified on the command line.
187+ deferred . resolve ( targetAndroidEmulator ) ;
188+ }
189+ return deferred . promise
190+ . then ( ( targetEmulator ) => {
191+ this . targetEmulator = targetEmulator ;
192+ console . log ( "Using Android simulator named " + this . targetEmulator ) ;
193+ return this . targetEmulator ;
194+ } ) ;
176195 }
177196 } ;
178197 /**
@@ -254,7 +273,6 @@ var AndroidEmulatorManager = (function () {
254273 return commandWithCheckAppExistence ( "adb uninstall" , appId ) ;
255274 } ;
256275 AndroidEmulatorManager . ANDROID_EMULATOR_OPTION_NAME = "--androidemu" ;
257- AndroidEmulatorManager . DEFAULT_ANDROID_EMULATOR = "emulator" ;
258276 return AndroidEmulatorManager ;
259277} ( ) ) ;
260278exports . AndroidEmulatorManager = AndroidEmulatorManager ;
0 commit comments