public function run(TestResult $result)
    {
        $this->eventEmitter->emit('suite.start', [$this]);
        $this->eventEmitter->on('suite.halt', [$this, 'halt']);

        foreach ($this->getTestsToRun() as $test) {
            if ($this->halted) {
                break;
            }

            $this->runTest($test, $result);
        }

        $this->eventEmitter->emit('suite.end', [$this]);
    }