diff --git a/src/ExerciseDispatcher.php b/src/ExerciseDispatcher.php index b1399aee..61cd5388 100644 --- a/src/ExerciseDispatcher.php +++ b/src/ExerciseDispatcher.php @@ -175,11 +175,14 @@ public function run(ExerciseInterface $exercise, $fileName, OutputInterface $out { $this->eventDispatcher->dispatch(new Event('run.start', compact('exercise', 'fileName'))); - $exitStatus = $this->runnerFactory - ->create($exercise, $this->eventDispatcher) - ->run($fileName, $output); + try { + $exitStatus = $this->runnerFactory + ->create($exercise, $this->eventDispatcher) + ->run($fileName, $output); + } finally { + $this->eventDispatcher->dispatch(new Event('run.finish', compact('exercise', 'fileName'))); + } - $this->eventDispatcher->dispatch(new Event('run.finish', compact('exercise', 'fileName'))); return $exitStatus; }