Inheritance: implements Peridot\Runner\RunnerInterface, use trait Peridot\Core\HasEventEmitterTrait
 /**
  * Read a suite path on the environment's read stream and execute
  * them against a standard Peridot runner.
  *
  * @param Context $context
  * @param Environment $environment
  * @param Message $message
  * @return void
  */
 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();
     }
 }
Example #2
0
         $failingChild = new Test("failing child", function () {
             throw new Exception("booo");
         });
         $passing2Child = new Test("passing2 child", function () {
         });
         $childSuite->addTest($passingChild);
         $childSuite->addTest($failingChild);
         $childSuite->addTest($passing2Child);
         $suite->addTest($childSuite);
         $passing2 = new Test("passing2 spec", function () {
         });
         $suite->addTest($passing2);
         $configuration = new Configuration();
         $configuration->stopOnFailure();
         $suite->setEventEmitter($this->eventEmitter);
         $runner = new Runner($suite, $configuration, $this->eventEmitter);
         $result = new TestResult($this->eventEmitter);
         $runner->run($result);
         assert($result->getTestCount() === 3, "spec count should be 3");
     });
 });
 $behavesLikeErrorEmitter = function () {
     $this->suite->addTest(new Test("my spec", function () {
         trigger_error("This is a user notice", E_USER_NOTICE);
     }));
     $error = [];
     $this->eventEmitter->on('error', function ($errno, $errstr, $errfile, $errline) use(&$error) {
         $error = array('errno' => $errno, 'errstr' => $errstr, 'errfile' => $errfile, 'errline' => $errline);
     });
     $this->runner->run(new TestResult(new EventEmitter()));
     assert($error['errno'] == E_USER_NOTICE, "error event should have passed error constant");