Skip to content

Commit 245f47c

Browse files
Refactor selection of code coverage driver
1 parent e5852f2 commit 245f47c

File tree

1 file changed

+20
-11
lines changed

1 file changed

+20
-11
lines changed

src/CodeCoverage.php

+20-11
Original file line numberDiff line numberDiff line change
@@ -96,17 +96,7 @@ class PHP_CodeCoverage
9696
public function __construct(PHP_CodeCoverage_Driver $driver = null, PHP_CodeCoverage_Filter $filter = null)
9797
{
9898
if ($driver === null) {
99-
if (PHP_SAPI === 'phpdbg') {
100-
$driver = new PHP_CodeCoverage_Driver_Phpdbg;
101-
} else {
102-
$runtime = new Runtime;
103-
104-
if (!$runtime->hasXdebug()) {
105-
throw new PHP_CodeCoverage_Exception('No code coverage driver available');
106-
}
107-
108-
$driver = new PHP_CodeCoverage_Driver_Xdebug;
109-
}
99+
$driver = $this->selectDriver();
110100
}
111101

112102
if ($filter === null) {
@@ -905,4 +895,23 @@ private function getAllowedLines(array $linesToBeCovered, array $linesToBeUsed)
905895

906896
return $allowedLines;
907897
}
898+
899+
/**
900+
* @return PHP_CodeCoverage_Driver
901+
* @throws PHP_CodeCoverage_Exception
902+
*/
903+
private function selectDriver()
904+
{
905+
$runtime = new Runtime;
906+
907+
if (!$runtime->canCollectCodeCoverage()) {
908+
throw new PHP_CodeCoverage_Exception('No code coverage driver available');
909+
}
910+
911+
if ($runtime->isPHPDBG()) {
912+
return new PHP_CodeCoverage_Driver_PHPDBG;
913+
} else {
914+
return new PHP_CodeCoverage_Driver_Xdebug;
915+
}
916+
}
908917
}

0 commit comments

Comments
 (0)