Skip to content

Commit e0a23f4

Browse files
authored
Merge pull request #82 from Codeception/path-coverage
Support path coverage with PHPUnit 9
2 parents 96355f6 + 31a3def commit e0a23f4

File tree

1 file changed

+22
-13
lines changed

1 file changed

+22
-13
lines changed

c3.php

Lines changed: 22 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -243,17 +243,7 @@ function __c3_factory($filename, $lock = false)
243243
$phpCoverage = unserialize(file_get_contents($filename));
244244
}
245245

246-
return array($phpCoverage, $file);
247-
} else {
248-
if (method_exists(Driver::class, 'forLineCoverage')) {
249-
//php-code-coverage 9+
250-
$filter = new CodeCoverageFilter();
251-
$driver = Driver::forLineCoverage($filter);
252-
$phpCoverage = new PHP_CodeCoverage($driver, $filter);
253-
} else {
254-
//php-code-coverage 8 or older
255-
$phpCoverage = new PHP_CodeCoverage();
256-
}
246+
return [$phpCoverage, $file];
257247
}
258248

259249
if (isset($_SERVER['HTTP_X_CODECEPTION_CODECOVERAGE_SUITE'])) {
@@ -262,12 +252,31 @@ function __c3_factory($filename, $lock = false)
262252
$settings = \Codeception\Configuration::suiteSettings($suite, \Codeception\Configuration::config());
263253
} catch (Exception $e) {
264254
__c3_error($e->getMessage());
265-
$settings = array();
255+
$settings = [];
266256
}
267257
} else {
268258
$settings = \Codeception\Configuration::config();
269259
}
270260

261+
$pathCoverage = false;
262+
if (isset($settings['coverage']['path_coverage'])) {
263+
$pathCoverage = (bool)$settings['coverage']['path_coverage'];
264+
}
265+
266+
if (method_exists(Driver::class, 'forLineCoverage')) {
267+
//php-code-coverage 9+
268+
$filter = new CodeCoverageFilter();
269+
if ($pathCoverage) {
270+
$driver = Driver::forLineAndPathCoverage($filter);
271+
} else {
272+
$driver = Driver::forLineCoverage($filter);
273+
}
274+
$phpCoverage = new PHP_CodeCoverage($driver, $filter);
275+
} else {
276+
//php-code-coverage 8 or older
277+
$phpCoverage = new PHP_CodeCoverage();
278+
}
279+
271280
try {
272281
\Codeception\Coverage\Filter::setup($phpCoverage)
273282
->whiteList($settings)
@@ -276,7 +285,7 @@ function __c3_factory($filename, $lock = false)
276285
__c3_error($e->getMessage());
277286
}
278287

279-
return array($phpCoverage, $file);
288+
return [$phpCoverage, $file];
280289
}
281290

282291
function __c3_exit()

0 commit comments

Comments
 (0)