Server IP : 173.249.157.85 / Your IP : 216.73.216.223 Web Server : Apache System : Linux server.frogzhost.com 3.10.0-1127.19.1.el7.x86_64 #1 SMP Tue Aug 25 17:23:54 UTC 2020 x86_64 User : econtech ( 1005) PHP Version : 7.3.33 Disable Function : NONE MySQL : OFF | cURL : OFF | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : ON Directory : /home/econtech/public_html/vendor/phpunit/phpunit/src/Util/TestDox/ |
Upload File : |
<?php /* * This file is part of PHPUnit. * * (c) Sebastian Bergmann <sebastian@phpunit.de> * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace PHPUnit\Util\TestDox; use PHPUnit\Framework\AssertionFailedError; use PHPUnit\Framework\Test; use PHPUnit\Framework\TestCase; use PHPUnit\Framework\TestListener; use PHPUnit\Framework\TestSuite; use PHPUnit\Framework\Warning; use PHPUnit\Framework\WarningTestCase; use PHPUnit\Runner\BaseTestRunner; use PHPUnit\Util\Printer; /** * Base class for printers of TestDox documentation. */ abstract class ResultPrinter extends Printer implements TestListener { /** * @var NamePrettifier */ protected $prettifier; /** * @var string */ protected $testClass = ''; /** * @var int */ protected $testStatus; /** * @var array */ protected $tests = []; /** * @var int */ protected $successful = 0; /** * @var int */ protected $warned = 0; /** * @var int */ protected $failed = 0; /** * @var int */ protected $risky = 0; /** * @var int */ protected $skipped = 0; /** * @var int */ protected $incomplete = 0; /** * @var string|null */ protected $currentTestClassPrettified; /** * @var string|null */ protected $currentTestMethodPrettified; /** * @var array */ private $groups; /** * @var array */ private $excludeGroups; /** * @param resource $out * @param array $groups * @param array $excludeGroups */ public function __construct($out = null, array $groups = [], array $excludeGroups = []) { parent::__construct($out); $this->groups = $groups; $this->excludeGroups = $excludeGroups; $this->prettifier = new NamePrettifier; $this->startRun(); } /** * Flush buffer and close output. */ public function flush() { $this->doEndClass(); $this->endRun(); parent::flush(); } /** * An error occurred. * * @param Test $test * @param \Exception $e * @param float $time */ public function addError(Test $test, \Exception $e, $time) { if (!$this->isOfInterest($test)) { return; } $this->testStatus = BaseTestRunner::STATUS_ERROR; $this->failed++; } /** * A warning occurred. * * @param Test $test * @param Warning $e * @param float $time */ public function addWarning(Test $test, Warning $e, $time) { if (!$this->isOfInterest($test)) { return; } $this->testStatus = BaseTestRunner::STATUS_WARNING; $this->warned++; } /** * A failure occurred. * * @param Test $test * @param AssertionFailedError $e * @param float $time */ public function addFailure(Test $test, AssertionFailedError $e, $time) { if (!$this->isOfInterest($test)) { return; } $this->testStatus = BaseTestRunner::STATUS_FAILURE; $this->failed++; } /** * Incomplete test. * * @param Test $test * @param \Exception $e * @param float $time */ public function addIncompleteTest(Test $test, \Exception $e, $time) { if (!$this->isOfInterest($test)) { return; } $this->testStatus = BaseTestRunner::STATUS_INCOMPLETE; $this->incomplete++; } /** * Risky test. * * @param Test $test * @param \Exception $e * @param float $time */ public function addRiskyTest(Test $test, \Exception $e, $time) { if (!$this->isOfInterest($test)) { return; } $this->testStatus = BaseTestRunner::STATUS_RISKY; $this->risky++; } /** * Skipped test. * * @param Test $test * @param \Exception $e * @param float $time */ public function addSkippedTest(Test $test, \Exception $e, $time) { if (!$this->isOfInterest($test)) { return; } $this->testStatus = BaseTestRunner::STATUS_SKIPPED; $this->skipped++; } /** * A testsuite started. * * @param TestSuite $suite */ public function startTestSuite(TestSuite $suite) { } /** * A testsuite ended. * * @param TestSuite $suite */ public function endTestSuite(TestSuite $suite) { } /** * A test started. * * @param Test $test */ public function startTest(Test $test) { if (!$this->isOfInterest($test)) { return; } $class = \get_class($test); if ($this->testClass != $class) { if ($this->testClass != '') { $this->doEndClass(); } $classAnnotations = \PHPUnit\Util\Test::parseTestMethodAnnotations($class); if (isset($classAnnotations['class']['testdox'][0])) { $this->currentTestClassPrettified = $classAnnotations['class']['testdox'][0]; } else { $this->currentTestClassPrettified = $this->prettifier->prettifyTestClass($class); } $this->startClass($class); $this->testClass = $class; $this->tests = []; } if ($test instanceof TestCase) { $annotations = $test->getAnnotations(); if (isset($annotations['method']['testdox'][0])) { $this->currentTestMethodPrettified = $annotations['method']['testdox'][0]; } else { $this->currentTestMethodPrettified = $this->prettifier->prettifyTestMethod($test->getName(false)); } if ($test->usesDataProvider()) { $this->currentTestMethodPrettified .= ' ' . $test->dataDescription(); } } $this->testStatus = BaseTestRunner::STATUS_PASSED; } /** * A test ended. * * @param Test $test * @param float $time */ public function endTest(Test $test, $time) { if (!$this->isOfInterest($test)) { return; } if (!isset($this->tests[$this->currentTestMethodPrettified])) { if ($this->testStatus == BaseTestRunner::STATUS_PASSED) { $this->tests[$this->currentTestMethodPrettified]['success'] = 1; $this->tests[$this->currentTestMethodPrettified]['failure'] = 0; } else { $this->tests[$this->currentTestMethodPrettified]['success'] = 0; $this->tests[$this->currentTestMethodPrettified]['failure'] = 1; } } else { if ($this->testStatus == BaseTestRunner::STATUS_PASSED) { $this->tests[$this->currentTestMethodPrettified]['success']++; } else { $this->tests[$this->currentTestMethodPrettified]['failure']++; } } $this->currentTestClassPrettified = null; $this->currentTestMethodPrettified = null; } protected function doEndClass() { foreach ($this->tests as $name => $data) { $this->onTest($name, $data['failure'] == 0); } $this->endClass($this->testClass); } /** * Handler for 'start run' event. */ protected function startRun() { } /** * Handler for 'start class' event. * * @param string $name */ protected function startClass($name) { } /** * Handler for 'on test' event. * * @param string $name * @param bool $success */ protected function onTest($name, $success = true) { } /** * Handler for 'end class' event. * * @param string $name */ protected function endClass($name) { } /** * Handler for 'end run' event. */ protected function endRun() { } /** * @param Test $test * * @return bool */ private function isOfInterest(Test $test) { if (!$test instanceof TestCase) { return false; } if ($test instanceof WarningTestCase) { return false; } if (!empty($this->groups)) { foreach ($test->getGroups() as $group) { if (\in_array($group, $this->groups)) { return true; } } return false; } if (!empty($this->excludeGroups)) { foreach ($test->getGroups() as $group) { if (\in_array($group, $this->excludeGroups)) { return false; } } return true; } return true; } }