| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 | <?phpnamespace Codeception\Extension;use Codeception\Event\TestEvent;use Codeception\Events;use Codeception\Extension;use Codeception\Test\Descriptor;/** * This extension demonstrates how you can implement console output of your own. * Recommended to be used for development purposes only. */class SimpleReporter extends Extension{    public function _initialize()    {        $this->options['silent'] = false; // turn on printing for this extension        $this->_reconfigure(['settings' => ['silent' => true]]); // turn off printing for everything else    }    // we are listening for events    public static $events = [        Events::SUITE_BEFORE => 'beforeSuite',        Events::TEST_END     => 'after',        Events::TEST_SUCCESS => 'success',        Events::TEST_FAIL    => 'fail',        Events::TEST_ERROR   => 'error',    ];    public function beforeSuite()    {        $this->writeln("");    }    public function success()    {        $this->write('[+] ');    }    public function fail()    {        $this->write('[-] ');    }    public function error()    {        $this->write('[E] ');    }    // we are printing test status and time taken    public function after(TestEvent $e)    {        $seconds_input = $e->getTime();        // stack overflow: http://stackoverflow.com/questions/16825240/how-to-convert-microtime-to-hhmmssuu        $seconds = (int)($milliseconds = (int)($seconds_input * 1000)) / 1000;        $time = ($seconds % 60) . (($milliseconds === 0) ? '' : '.' . $milliseconds);        $this->write(Descriptor::getTestSignature($e->getTest()));        $this->writeln(' (' . $time . 's)');    }}
 |