diff --git a/src/Symfony/Bridge/PhpUnit/Legacy/CoverageListenerTrait.php b/src/Symfony/Bridge/PhpUnit/Legacy/CoverageListenerTrait.php index 7a64ed0d91cd5..aec5be838ec6f 100644 --- a/src/Symfony/Bridge/PhpUnit/Legacy/CoverageListenerTrait.php +++ b/src/Symfony/Bridge/PhpUnit/Legacy/CoverageListenerTrait.php @@ -66,13 +66,21 @@ public function startTest($test) return; } + if (!\is_array($sutFqcn)) { + $covers = [$sutFqcn]; + while ($parent = get_parent_class($sutFqcn)) { + $covers[] = $parent; + $sutFqcn = $parent; + } + } + $r = new \ReflectionProperty(Test::class, 'annotationCache'); $r->setAccessible(true); $cache = $r->getValue(); $cache = array_replace_recursive($cache, [ \get_class($test) => [ - 'covers' => \is_array($sutFqcn) ? $sutFqcn : [$sutFqcn], + 'covers' => $covers, ], ]); $r->setValue(Test::class, $cache);