Skip to content

Commit

Permalink
Adding Support for PHPUnit v9.0
Browse files Browse the repository at this point in the history
Drops support for older PHP Unit versions
  • Loading branch information
ktamas77 committed Mar 27, 2020
1 parent f1a69be commit 8df6619
Show file tree
Hide file tree
Showing 4 changed files with 34 additions and 35 deletions.
3 changes: 2 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
/vendor/
/composer.lock
coverage
coverage
.idea
2 changes: 0 additions & 2 deletions .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,6 @@ sudo: false
language: php

php:
- 7.1
- 7.2
- 7.3

install:
Expand Down
6 changes: 3 additions & 3 deletions composer.json
Original file line number Diff line number Diff line change
Expand Up @@ -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": {
Expand Down
58 changes: 29 additions & 29 deletions src/LiveCodeCoverage/CodeCoverageFactory.php
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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());
}

}

/**
Expand Down

0 comments on commit 8df6619

Please sign in to comment.