diff --git a/src/Runner/TestSuiteSorter.php b/src/Runner/TestSuiteSorter.php index adaf7950418..9607d1d3f82 100644 --- a/src/Runner/TestSuiteSorter.php +++ b/src/Runner/TestSuiteSorter.php @@ -74,6 +74,25 @@ final class TestSuiteSorter */ private $executionOrder = []; + public static function getTestSorterUID(Test $test): string + { + if ($test instanceof PhptTestCase) { + return $test->getName(); + } + + if ($test instanceof TestCase) { + $testName = $test->getName(true); + + if (\strpos($testName, '::') === false) { + $testName = \get_class($test) . '::' . $testName; + } + + return $testName; + } + + return $test->getName(); + } + public function __construct(?TestResultCacheInterface $cache = null) { $this->cache = $cache ?? new NullTestResultCache; @@ -167,7 +186,7 @@ private function addSuiteToDefectSortOrder(TestSuite $suite): void $max = 0; foreach ($suite->tests() as $test) { - $testname = TestResultCache::getTestSorterUID($test); + $testname = self::getTestSorterUID($test); if (!isset($this->defectSortOrder[$testname])) { $this->defectSortOrder[$testname] = self::DEFECT_SORT_WEIGHT[$this->cache->getState($testname)]; @@ -233,8 +252,8 @@ function ($left, $right) { */ private function cmpDefectPriorityAndTime(Test $a, Test $b): int { - $priorityA = $this->defectSortOrder[TestResultCache::getTestSorterUID($a)] ?? 0; - $priorityB = $this->defectSortOrder[TestResultCache::getTestSorterUID($b)] ?? 0; + $priorityA = $this->defectSortOrder[self::getTestSorterUID($a)] ?? 0; + $priorityB = $this->defectSortOrder[self::getTestSorterUID($b)] ?? 0; if ($priorityB <=> $priorityA) { // Sort defect weight descending @@ -254,7 +273,7 @@ private function cmpDefectPriorityAndTime(Test $a, Test $b): int */ private function cmpDuration(Test $a, Test $b): int { - return $this->cache->getTime(TestResultCache::getTestSorterUID($a)) <=> $this->cache->getTime(TestResultCache::getTestSorterUID($b)); + return $this->cache->getTime(self::getTestSorterUID($a)) <=> $this->cache->getTime(self::getTestSorterUID($b)); } /** @@ -280,7 +299,7 @@ private function resolveDependencies(array $tests): array do { $todoNames = \array_map( function ($test) { - return TestResultCache::getTestSorterUID($test); + return self::getTestSorterUID($test); }, $tests ); @@ -326,7 +345,7 @@ private function calculateTestExecutionOrder(Test $suite): array if ($suite instanceof TestSuite) { foreach ($suite->tests() as $test) { if (!($test instanceof TestSuite)) { - $tests[] = TestResultCache::getTestSorterUID($test); + $tests[] = self::getTestSorterUID($test); } else { $tests = \array_merge($tests, $this->calculateTestExecutionOrder($test)); } diff --git a/src/Util/TestDox/CliTestDoxPrinter.php b/src/Util/TestDox/CliTestDoxPrinter.php index 0215bb7acf0..124b781dd1a 100644 --- a/src/Util/TestDox/CliTestDoxPrinter.php +++ b/src/Util/TestDox/CliTestDoxPrinter.php @@ -16,7 +16,7 @@ use PHPUnit\Framework\TestSuite; use PHPUnit\Framework\Warning; use PHPUnit\Runner\PhptTestCase; -use PHPUnit\Runner\TestResultCache; +use PHPUnit\Runner\TestSuiteSorter; use PHPUnit\TextUI\ResultPrinter; use SebastianBergmann\Timer\Timer; @@ -241,7 +241,7 @@ public function bufferTestResult(Test $test, string $msg): void { $this->outputBuffer[$this->testIndex] = [ 'className' => $this->className, - 'testName' => TestResultCache::getTestSorterUID($test), + 'testName' => TestSuiteSorter::getTestSorterUID($test), 'testMethod' => $this->testMethod, 'message' => $msg, 'failed' => $this->lastTestFailed, diff --git a/src/Util/TestResultCache.php b/src/Util/TestResultCache.php index 05bd4811a15..8cb290091c8 100644 --- a/src/Util/TestResultCache.php +++ b/src/Util/TestResultCache.php @@ -10,7 +10,6 @@ namespace PHPUnit\Runner; use PHPUnit\Framework\Test; -use PHPUnit\Framework\TestCase; class TestResultCache implements \Serializable, TestResultCacheInterface { @@ -64,25 +63,6 @@ class TestResultCache implements \Serializable, TestResultCacheInterface */ private $times = []; - public static function getTestSorterUID(Test $test): string - { - if ($test instanceof PhptTestCase) { - return $test->getName(); - } - - if ($test instanceof TestCase) { - $testName = $test->getName(true); - - if (\strpos($testName, '::') === false) { - $testName = \get_class($test) . '::' . $testName; - } - - return $testName; - } - - return $test->getName(); - } - public function __construct($filename = null) { $this->cacheFilename = $filename ?? $_ENV['PHPUNIT_RESULT_CACHE'] ?? self::DEFAULT_RESULT_CACHE_FILENAME;