Skip to content

Commit

Permalink
Closes #4306
Browse files Browse the repository at this point in the history
  • Loading branch information
sebastianbergmann committed Jun 20, 2020
1 parent a4baf33 commit 1c95329
Show file tree
Hide file tree
Showing 2 changed files with 48 additions and 41 deletions.
1 change: 1 addition & 0 deletions ChangeLog-8.5.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ All notable changes of the PHPUnit 8.5 release series are documented in this fil
### Fixed

* [#4299](https://github.com/sebastianbergmann/phpunit/issues/4299): "No tests executed" does not always result in exit code `1`
* [#4306](https://github.com/sebastianbergmann/phpunit/issues/4306): Exceptions during code coverage driver initialization are not handled correctly

## [8.5.6] - 2020-06-15

Expand Down
88 changes: 47 additions & 41 deletions src/TextUI/TestRunner.php
Original file line number Diff line number Diff line change
Expand Up @@ -503,59 +503,65 @@ public function doRun(Test $suite, array $arguments = [], array $warnings = [],
}

if ($codeCoverageReports > 0) {
$codeCoverage = new CodeCoverage(
null,
$this->codeCoverageFilter
);

$codeCoverage->setUnintentionallyCoveredSubclassesWhitelist(
[Comparator::class]
);

$codeCoverage->setCheckForUnintentionallyCoveredCode(
$arguments['strictCoverage']
);
try {
$codeCoverage = new CodeCoverage(
null,
$this->codeCoverageFilter
);

$codeCoverage->setCheckForMissingCoversAnnotation(
$arguments['strictCoverage']
);
$codeCoverage->setUnintentionallyCoveredSubclassesWhitelist(
[Comparator::class]
);

if (isset($arguments['forceCoversAnnotation'])) {
$codeCoverage->setForceCoversAnnotation(
$arguments['forceCoversAnnotation']
$codeCoverage->setCheckForUnintentionallyCoveredCode(
$arguments['strictCoverage']
);
}

if (isset($arguments['ignoreDeprecatedCodeUnitsFromCodeCoverage'])) {
$codeCoverage->setIgnoreDeprecatedCode(
$arguments['ignoreDeprecatedCodeUnitsFromCodeCoverage']
$codeCoverage->setCheckForMissingCoversAnnotation(
$arguments['strictCoverage']
);
}

if (isset($arguments['disableCodeCoverageIgnore'])) {
$codeCoverage->setDisableIgnoredLines(true);
}
if (isset($arguments['forceCoversAnnotation'])) {
$codeCoverage->setForceCoversAnnotation(
$arguments['forceCoversAnnotation']
);
}

if (!empty($filterConfiguration['whitelist'])) {
$codeCoverage->setAddUncoveredFilesFromWhitelist(
$filterConfiguration['whitelist']['addUncoveredFilesFromWhitelist']
);
if (isset($arguments['ignoreDeprecatedCodeUnitsFromCodeCoverage'])) {
$codeCoverage->setIgnoreDeprecatedCode(
$arguments['ignoreDeprecatedCodeUnitsFromCodeCoverage']
);
}

$codeCoverage->setProcessUncoveredFilesFromWhitelist(
$filterConfiguration['whitelist']['processUncoveredFilesFromWhitelist']
);
}
if (isset($arguments['disableCodeCoverageIgnore'])) {
$codeCoverage->setDisableIgnoredLines(true);
}

if (!$this->codeCoverageFilter->hasWhitelist()) {
if (!$whitelistFromConfigurationFile && !$whitelistFromOption) {
$this->writeMessage('Error', 'No whitelist is configured, no code coverage will be generated.');
} else {
$this->writeMessage('Error', 'Incorrect whitelist config, no code coverage will be generated.');
if (!empty($filterConfiguration['whitelist'])) {
$codeCoverage->setAddUncoveredFilesFromWhitelist(
$filterConfiguration['whitelist']['addUncoveredFilesFromWhitelist']
);

$codeCoverage->setProcessUncoveredFilesFromWhitelist(
$filterConfiguration['whitelist']['processUncoveredFilesFromWhitelist']
);
}

$codeCoverageReports = 0;
if (!$this->codeCoverageFilter->hasWhitelist()) {
if (!$whitelistFromConfigurationFile && !$whitelistFromOption) {
$this->writeMessage('Error', 'No whitelist is configured, no code coverage will be generated.');
} else {
$this->writeMessage('Error', 'Incorrect whitelist config, no code coverage will be generated.');
}

$codeCoverageReports = 0;

unset($codeCoverage);
unset($codeCoverage);
}
} catch (CodeCoverageException $e) {
$this->writeMessage('Error', $e->getMessage());

$codeCoverageReports = 0;
}
}

Expand Down

0 comments on commit 1c95329

Please sign in to comment.