public function loop(Context $context, Environment $environment, Message $message)
    {
        while (true) {
            $input = fgets($environment->getReadStream());
            list($token, $path) = $this->getTestInfo($input);
            $context->setFile($path);
            putenv("PERIDOT_TEST_TOKEN=$token");
            require $path;

            $runner = new Runner(
                $context->getCurrentSuite(),
                $environment->getConfiguration(),
                $environment->getEventEmitter()
            );

            $runner->run(new TestResult($environment->getEventEmitter()));

            $message->end();
            $context->clear();
        }
    }