diff --git a/.gitignore b/.gitignore index 84e551e..85655b3 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ /vendor/ /composer.lock -coverage \ No newline at end of file +coverage +.idea diff --git a/.travis.yml b/.travis.yml index 94d0738..351e1dc 100644 --- a/.travis.yml +++ b/.travis.yml @@ -3,8 +3,6 @@ sudo: false language: php php: - - 7.1 - - 7.2 - 7.3 install: diff --git a/composer.json b/composer.json index c811f73..cae9862 100644 --- a/composer.json +++ b/composer.json @@ -3,10 +3,10 @@ "description": "Generate code coverage reports on a live server", "license": "MIT", "require": { - "php": "^7.1", + "php": "^7.3", "webmozart/assert": "^1.2", - "phpunit/php-code-coverage": "^4.0 || ^5.2 || ^6.0 || ^7.0 || ^8.0", - "phpunit/phpunit": "^5.7 || ^6.0 || ^7.0 || ^8.0 || ^9.0" + "phpunit/php-code-coverage": "^8.0", + "phpunit/phpunit": "^9.0" }, "autoload": { "psr-4": { diff --git a/src/LiveCodeCoverage/CodeCoverageFactory.php b/src/LiveCodeCoverage/CodeCoverageFactory.php index 13de6c6..6dd512b 100644 --- a/src/LiveCodeCoverage/CodeCoverageFactory.php +++ b/src/LiveCodeCoverage/CodeCoverageFactory.php @@ -2,7 +2,8 @@ namespace LiveCodeCoverage; -use PHPUnit\Util\Configuration; +use PHPUnit\TextUI\Configuration\Configuration; +use PHPUnit\TextUI\Configuration\Loader; use SebastianBergmann\CodeCoverage\CodeCoverage; final class CodeCoverageFactory @@ -15,54 +16,53 @@ public static function createFromPhpUnitConfiguration($phpunitFilePath) { $codeCoverage = self::createDefault(); - // Accomodate for PHPUnit 5.7 - if (!class_exists('PHPUnit\Util\Configuration')) { - class_alias('PHPUnit_Util_Configuration', 'PHPUnit\Util\Configuration'); - } - - self::configure($codeCoverage, Configuration::getInstance($phpunitFilePath)); + $loader = new Loader(); + self::configure($codeCoverage, $loader->load($phpunitFilePath)); return $codeCoverage; } private static function configure(CodeCoverage $codeCoverage, Configuration $configuration) { - $filter = $codeCoverage->filter(); - $filterConfiguration = $configuration->getFilterConfiguration(); + $codeCoverageFilter = $codeCoverage->filter(); + $filterConfiguration = $configuration->filter(); // The following code is copied from PHPUnit\TextUI\TestRunner - $codeCoverage->setAddUncoveredFilesFromWhitelist( - $filterConfiguration['whitelist']['addUncoveredFilesFromWhitelist'] - ); + if ($filterConfiguration->hasNonEmptyWhitelist()) { + $codeCoverage->setAddUncoveredFilesFromWhitelist( + $filterConfiguration->addUncoveredFilesFromWhitelist() + ); - $codeCoverage->setProcessUncoveredFilesFromWhitelist( - $filterConfiguration['whitelist']['processUncoveredFilesFromWhitelist'] - ); + $codeCoverage->setProcessUncoveredFilesFromWhitelist( + $filterConfiguration->processUncoveredFilesFromWhitelist() + ); + } - foreach ($filterConfiguration['whitelist']['include']['directory'] as $dir) { - $filter->addDirectoryToWhitelist( - $dir['path'], - $dir['suffix'], - $dir['prefix'] + foreach ($filterConfiguration->directories() as $directory) { + $codeCoverageFilter->addDirectoryToWhitelist( + $directory->path(), + $directory->suffix(), + $directory->prefix() ); } - foreach ($filterConfiguration['whitelist']['include']['file'] as $file) { - $filter->addFileToWhitelist($file); + foreach ($filterConfiguration->files() as $file) { + $codeCoverageFilter->addFileToWhitelist($file->path()); } - foreach ($filterConfiguration['whitelist']['exclude']['directory'] as $dir) { - $filter->removeDirectoryFromWhitelist( - $dir['path'], - $dir['suffix'], - $dir['prefix'] + foreach ($filterConfiguration->excludeDirectories() as $directory) { + $codeCoverageFilter->removeDirectoryFromWhitelist( + $directory->path(), + $directory->suffix(), + $directory->prefix() ); } - foreach ($filterConfiguration['whitelist']['exclude']['file'] as $file) { - $filter->removeFileFromWhitelist($file); + foreach ($filterConfiguration->excludeFiles() as $file) { + $codeCoverageFilter->removeFileFromWhitelist($file->path()); } + } /**