@@ -12,6 +12,7 @@ import {Runner} from './runner';
12
12
import { TaskRunner } from './taskRunner' ;
13
13
import { TaskScheduler } from './taskScheduler' ;
14
14
import * as helper from './util' ;
15
+ import { reject } from 'q' ;
15
16
16
17
let logger = new Logger ( 'launcher' ) ;
17
18
let RUNNERS_FAILED_EXIT_CODE = 100 ;
@@ -141,7 +142,7 @@ let initFn = async function(configFile: string, additionalConfig: Config) {
141
142
142
143
// 3) If we're in `elementExplorer` mode, run only that.
143
144
if ( config . elementExplorer || config . framework === 'explorer' ) {
144
- if ( config . multiCapabilities . length != 1 ) {
145
+ if ( config . multiCapabilities . length !== 1 ) {
145
146
throw new Error ( 'Must specify only 1 browser while using elementExplorer' ) ;
146
147
} else {
147
148
config . capabilities = config . multiCapabilities [ 0 ] ;
@@ -195,7 +196,7 @@ let initFn = async function(configFile: string, additionalConfig: Config) {
195
196
// Run afterlaunch and exit
196
197
const cleanUpAndExit = async ( exitCode : number ) => {
197
198
try {
198
- let returned =
199
+ const returned =
199
200
await helper . runFilenameOrFn_ ( config . configDir , config . afterLaunch , [ exitCode ] ) ;
200
201
if ( typeof returned === 'number' ) {
201
202
process . exit ( returned ) ;
@@ -208,7 +209,7 @@ let initFn = async function(configFile: string, additionalConfig: Config) {
208
209
}
209
210
} ;
210
211
211
- let totalTasks = scheduler . numTasksOutstanding ( ) ;
212
+ const totalTasks = scheduler . numTasksOutstanding ( ) ;
212
213
let forkProcess = false ;
213
214
if ( totalTasks > 1 ) { // Start new processes only if there are >1 tasks.
214
215
forkProcess = true ;
@@ -219,35 +220,35 @@ let initFn = async function(configFile: string, additionalConfig: Config) {
219
220
}
220
221
221
222
const createNextTaskRunner = async ( ) => {
222
- return new Promise ( resolve => {
223
- let task = scheduler . nextTask ( ) ;
223
+ return new Promise ( async ( resolve ) => {
224
+ const task = scheduler . nextTask ( ) ;
224
225
if ( task ) {
225
- let taskRunner = new TaskRunner ( configFile , additionalConfig , task , forkProcess ) ;
226
- taskRunner . run ( )
227
- . then ( async ( result ) => {
228
- if ( result . exitCode && ! result . failedCount ) {
229
- logger . error (
230
- 'Runner process exited unexpectedly with error code: ' + result . exitCode ) ;
231
- }
232
- taskResults_ . add ( result ) ;
233
- task . done ( ) ;
234
- createNextTaskRunner ( ) ;
235
- // If all tasks are finished
236
- if ( scheduler . numTasksOutstanding ( ) === 0 ) {
237
- resolve ( ) ;
238
- }
239
- logger . info ( scheduler . countActiveTasks ( ) + ' instance(s) of WebDriver still running' ) ;
240
- } )
241
- . catch ( async ( err : Error ) => {
242
- const errorCode = ErrorHandler . parseError ( err ) ;
243
- logger . error ( 'Error:' , ( err as any ) . stack || err . message || err ) ;
244
- await cleanUpAndExit ( errorCode ? errorCode : RUNNERS_FAILED_EXIT_CODE ) ;
245
- } ) ;
226
+ const taskRunner = new TaskRunner ( configFile , additionalConfig , task , forkProcess ) ;
227
+ try {
228
+ const result = await taskRunner . run ( ) ;
229
+ if ( result . exitCode && ! result . failedCount ) {
230
+ logger . error (
231
+ 'Runner process exited unexpectedly with error code: ' + result . exitCode ) ;
232
+ }
233
+ taskResults_ . add ( result ) ;
234
+ task . done ( ) ;
235
+ createNextTaskRunner ( ) ;
236
+ // If all tasks are finished
237
+ if ( scheduler . numTasksOutstanding ( ) === 0 ) {
238
+ resolve ( ) ;
239
+ }
240
+ logger . info ( scheduler . countActiveTasks ( ) + ' instance(s) of WebDriver still running' ) ;
241
+ } catch ( err ) {
242
+ const errorCode = ErrorHandler . parseError ( err ) ;
243
+ logger . error ( 'Error:' , ( err as any ) . stack || err . message || err ) ;
244
+ await cleanUpAndExit ( errorCode ? errorCode : RUNNERS_FAILED_EXIT_CODE ) ;
245
+ }
246
246
}
247
247
} ) ;
248
248
} ;
249
249
250
- for ( let i = 0 ; i < scheduler . maxConcurrentTasks ( ) ; ++ i ) {
250
+ const maxConcurrentTasks = scheduler . maxConcurrentTasks ( ) ;
251
+ for ( let i = 0 ; i < maxConcurrentTasks ; ++ i ) {
251
252
await createNextTaskRunner ( ) ;
252
253
}
253
254
logger . info ( 'Running ' + scheduler . countActiveTasks ( ) + ' instances of WebDriver' ) ;
0 commit comments