Prettifies the name of a test class.
public prettifyTestClass ( string $name ) : string | ||
$name | string | |
return | string |
/** * A test started. * * @param PHPUnit_Framework_Test $test */ public function startTest(PHPUnit_Framework_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 = []; } $annotations = $test->getAnnotations(); if (isset($annotations['method']['testdox'][0])) { $this->currentTestMethodPrettified = $annotations['method']['testdox'][0]; } else { $this->currentTestMethodPrettified = $this->prettifier->prettifyTestMethod($test->getName(false)); } $this->testStatus = PHPUnit_Runner_BaseTestRunner::STATUS_PASSED; }
/** * A test started. * * @param PHPUnit_Framework_Test $test */ public function startTest(PHPUnit_Framework_Test $test) { if ($test instanceof $this->testTypeOfInterest) { $class = get_class($test); if ($this->testClass != $class) { if ($this->testClass != '') { $this->doEndClass(); } $this->currentTestClassPrettified = $this->prettifier->prettifyTestClass($class); $this->startClass($class); $this->testClass = $class; $this->tests = array(); } $prettified = FALSE; if ($test instanceof PHPUnit_Framework_TestCase && !$test instanceof PHPUnit_Framework_Warning) { $annotations = $test->getAnnotations(); if (isset($annotations['method']['testdox'][0])) { $this->currentTestMethodPrettified = $annotations['method']['testdox'][0]; $prettified = TRUE; } } if (!$prettified) { $this->currentTestMethodPrettified = $this->prettifier->prettifyTestMethod($test->getName(FALSE)); } $this->testStatus = PHPUnit_Runner_BaseTestRunner::STATUS_PASSED; } }
/** * @access private * @since Method available since Release 2.3.0 */ private function doEndClass() { foreach ($this->tests as $name => $data) { if ($data['failure'] == 0) { $this->onTest($name); } } $this->endClass($this->prettifier->prettifyTestClass($this->testClass)); }
/** * A test ended. * * @param PHPUnit_Framework_Test $test * @param float $time */ public function endTest(PHPUnit_Framework_Test $test, $time) { if (!$test instanceof PHPUnit_Framework_TestCase) { return; } /* @var PHPUnit_Framework_TestCase $test */ $groups = array_filter($test->getGroups(), function ($group) { if ($group == 'small' || $group == 'medium' || $group == 'large') { return false; } return true; }); $node = $this->document->createElement('test'); $node->setAttribute('className', get_class($test)); $node->setAttribute('methodName', $test->getName()); $node->setAttribute('prettifiedClassName', $this->prettifier->prettifyTestClass(get_class($test))); $node->setAttribute('prettifiedMethodName', $this->prettifier->prettifyTestMethod($test->getName())); $node->setAttribute('status', $test->getStatus()); $node->setAttribute('time', $time); $node->setAttribute('size', $test->getSize()); $node->setAttribute('groups', implode(',', $groups)); $inlineAnnotations = PHPUnit_Util_Test::getInlineAnnotations(get_class($test), $test->getName()); if (isset($inlineAnnotations['given']) && isset($inlineAnnotations['when']) && isset($inlineAnnotations['then'])) { $node->setAttribute('given', $inlineAnnotations['given']['value']); $node->setAttribute('givenStartLine', $inlineAnnotations['given']['line']); $node->setAttribute('when', $inlineAnnotations['when']['value']); $node->setAttribute('whenStartLine', $inlineAnnotations['when']['line']); $node->setAttribute('then', $inlineAnnotations['then']['value']); $node->setAttribute('thenStartLine', $inlineAnnotations['then']['line']); } if ($this->exception !== null) { if ($this->exception instanceof PHPUnit_Framework_Exception) { $steps = $this->exception->getSerializableTrace(); } else { $steps = $this->exception->getTrace(); } $class = new ReflectionClass($test); $file = $class->getFileName(); foreach ($steps as $step) { if (isset($step['file']) && $step['file'] == $file) { $node->setAttribute('exceptionLine', $step['line']); break; } } $node->setAttribute('exceptionMessage', $this->exception->getMessage()); } $this->root->appendChild($node); }
/** * A test started. * * @param PHPUnit_Framework_Test $test */ public function startTest(PHPUnit_Framework_Test $test) { if ($test instanceof $this->testTypeOfInterest) { $class = get_class($test); if ($this->testClass != $class) { if ($this->testClass != '') { $this->doEndClass(); } $this->currentTestClassPrettified = $this->prettifier->prettifyTestClass($class); $this->startClass($class); $this->testClass = $class; $this->tests = array(); } $this->currentTestMethodPrettified = $this->prettifier->prettifyTestMethod($test->getName()); $this->testStatus = PHPUnit_Runner_BaseTestRunner::STATUS_PASSED; } }
/** * Prettifies the name of a test class. * * This method will return $testClass unchanged if human-readable names * are disabled. * * @param string $testClassName a camel-case test class name, must not be empty * * @return string the prettified test class name, will not be empty */ protected function prettifyTestClass($testClassName) { if (!$this->useHumanReadableTextFormat) { return $testClassName; } $testClassNameWithoutPrefixOrSuffix = preg_replace('/(tx_|Tx_)?(.+)(Test|_testcase)$/', '\\2', $testClassName); $testClassNameWithoutUnderScores = str_replace('_', ' ', $testClassNameWithoutPrefixOrSuffix); $this->namePrettifier->setPrefix(null); $this->namePrettifier->setSuffix(null); return $this->namePrettifier->prettifyTestClass($testClassNameWithoutUnderScores); }