diff --git a/src/test/dispatcher.ts b/src/test/dispatcher.ts index 35b4d6fe08..7d59a987b8 100644 --- a/src/test/dispatcher.ts +++ b/src/test/dispatcher.ts @@ -253,7 +253,11 @@ export class Dispatcher { }); worker.on('stepEnd', (params: StepEndPayload) => { const { test, result, steps } = this._testById.get(params.testId)!; - const step = steps.get(params.stepId)!; + const step = steps.get(params.stepId); + if (!step) { + this._reporter.onStdErr?.('Internal error: step end without step begin: ' + params.stepId, test, result); + return; + } step.duration = params.wallTime - step.startTime.getTime(); if (params.error) step.error = params.error; diff --git a/src/test/workerRunner.ts b/src/test/workerRunner.ts index 68e65b6ba0..4108fa3a00 100644 --- a/src/test/workerRunner.ts +++ b/src/test/workerRunner.ts @@ -273,7 +273,7 @@ export class WorkerRunner extends EventEmitter { }, _testFinished: new Promise(f => testFinishedCallback = f), _addStep: (category: string, title: string) => { - const stepId = `${category}@${++lastStepId}`; + const stepId = `${category}@${title}@${++lastStepId}`; const payload: StepBeginPayload = { testId, stepId,