Exemple #1
0
 private function getTestEvent()
 {
     $event = new Event();
     $runner = $this;
     $event->on('preRun', function ($test) {
         echo 'Running Tests for: ' . get_class($test) . PHP_EOL;
     });
     $event->on('preMethod', function ($method, $test) use($runner) {
         $runner->methodTime[$method]['start'] = microtime(true);
     });
     $event->on('postMethod', function ($method, $test) use($runner) {
         $runner->methodTime[$method]['stop'] = microtime(true);
         $className = get_class($test);
         $start = $runner->methodTime[$method]['start'];
         $stop = $runner->methodTime[$method]['stop'];
         $time = $stop - $start;
         $runner->testTime += $time;
         $number = (string) number_format($time, 3);
         echo "[" . ($test->isMethodPassed($method) ? '42m[PASS]' : "41m[FAIL]") . "" . str_pad(' ' . $className . '::' . $method . ' ', self::PADDING - strlen($number)) . $number . PHP_EOL;
     });
     $event->on('postRun', function ($test) use($runner) {
         $number = number_format($runner->testTime, 3);
         $runner->totalTime += $runner->testTime;
         $runner->testTime = 0;
         echo str_pad('Total for ' . get_class($test) . ': ', self::PADDING + 6 - strlen($number), ' ', STR_PAD_LEFT) . "" . $number . "" . PHP_EOL;
     });
     return $event;
 }
Exemple #2
0
use Testes\Autoloader;
use Testes\Event;
$base = __DIR__ . '/..';
require $base . '/src/Testes/Autoloader.php';
Autoloader::register();
Autoloader::addPath($base . '/tests');
Autoloader::addPath($base . '/src');
Autoloader::addPath($base . '/vendor/devco');
Autoloader::addPath($base . '/vendor/devco/event-emitter/src');
$coverage = new Coverage();
$finder = new Finder($base . '/tests', 'Test');
$coverage->start();
echo PHP_EOL;
$event = new Event\Test();
$event->on('postRun', function ($test) {
    echo $test->getAssertions()->isPassed() && !$test->getExceptions()->count() ? '.' : 'F';
});
$suite = $finder->run($event);
echo PHP_EOL . PHP_EOL . sprintf('Ran %d test%s.', count($suite), count($suite) === 1 ? '' : 's');
$analyzer = $coverage->stop()->addDirectory($base . '/src')->is('\\.php$');
echo PHP_EOL . PHP_EOL . 'Coverage: ' . $analyzer->getPercentTested() . '%' . PHP_EOL . PHP_EOL;
if (count($assertions = $suite->getAssertions()->getFailed())) {
    echo 'Assertions' . PHP_EOL;
    echo '----------' . PHP_EOL;
    foreach ($assertions as $ass) {
        echo '  ' . $ass->getTestClass() . ':' . $ass->getTestLine() . ' ' . $ass->getMessage() . PHP_EOL;
    }
    echo PHP_EOL;
}
if (count($exceptions = $suite->getExceptions())) {
    echo 'Exceptions' . PHP_EOL;