Skip to content

Commit 0b16f22

Browse files
authored
Merge pull request #84 from Codeception/phpunit-10.0.6
Fix compatibility with PHPUnit 10
2 parents 848979b + a179d0f commit 0b16f22

File tree

1 file changed

+12
-17
lines changed

1 file changed

+12
-17
lines changed

c3.php

Lines changed: 12 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,9 @@
1010

1111
// $_SERVER['HTTP_X_CODECEPTION_CODECOVERAGE_DEBUG'] = 1;
1212

13-
use Codeception\Util\ReflectionHelper;
14-
use PHPUnit\Runner\CodeCoverage as CodeCoverageRunner;
13+
use SebastianBergmann\CodeCoverage\CodeCoverage;
1514
use SebastianBergmann\CodeCoverage\Driver\Driver;
15+
use SebastianBergmann\CodeCoverage\Driver\Selector;
1616
use SebastianBergmann\CodeCoverage\Filter as CodeCoverageFilter;
1717

1818
if (isset($_COOKIE['CODECEPTION_CODECOVERAGE'])) {
@@ -265,29 +265,24 @@ function __c3_factory($filename, $lock = false)
265265
$pathCoverage = (bool)$settings['coverage']['path_coverage'];
266266
}
267267

268-
if (class_exists(CodeCoverageRunner::class)) {
269-
//PHPUnit 10+
270-
if (!CodeCoverageRunner::isActive()) {
271-
ReflectionHelper::invokePrivateMethod(
272-
null,
273-
'activate',
274-
[
275-
new CodeCoverageFilter(),
276-
$pathCoverage
277-
],
278-
CodeCoverageRunner::class
279-
);
268+
if (class_exists(Selector::class)) {
269+
//php-code-coverage >= 9.1.10
270+
$filter = new CodeCoverageFilter();
271+
if ($pathCoverage) {
272+
$driver = (new Selector())->forLineAndPathCoverage($filter);
273+
} else {
274+
$driver = (new Selector())->forLineCoverage($filter);
280275
}
281-
$phpCoverage = CodeCoverageRunner::instance();
276+
$phpCoverage = new CodeCoverage($driver, $filter);
282277
} elseif (method_exists(Driver::class, 'forLineCoverage')) {
283-
//php-code-coverage 9
278+
//php-code-coverage 9.0.0 - 9.1.9
284279
$filter = new CodeCoverageFilter();
285280
if ($pathCoverage) {
286281
$driver = Driver::forLineAndPathCoverage($filter);
287282
} else {
288283
$driver = Driver::forLineCoverage($filter);
289284
}
290-
$phpCoverage = new PHP_CodeCoverage($driver, $filter);
285+
$phpCoverage = new CodeCoverage($driver, $filter);
291286
} else {
292287
//php-code-coverage 8 or older
293288
$phpCoverage = new PHP_CodeCoverage();

0 commit comments

Comments
 (0)