@@ -170,9 +170,28 @@ var AndroidEmulatorManager = (function () {
170
170
if ( this . targetEmulator )
171
171
return Q ( this . targetEmulator ) ;
172
172
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
+ } ) ;
176
195
}
177
196
} ;
178
197
/**
@@ -254,7 +273,6 @@ var AndroidEmulatorManager = (function () {
254
273
return commandWithCheckAppExistence ( "adb uninstall" , appId ) ;
255
274
} ;
256
275
AndroidEmulatorManager . ANDROID_EMULATOR_OPTION_NAME = "--androidemu" ;
257
- AndroidEmulatorManager . DEFAULT_ANDROID_EMULATOR = "emulator" ;
258
276
return AndroidEmulatorManager ;
259
277
} ( ) ) ;
260
278
exports . AndroidEmulatorManager = AndroidEmulatorManager ;
0 commit comments