Skip to content

Commit 617b68d

Browse files
committed
Tentative support for php-code-coverage 10
1 parent dad9161 commit 617b68d

File tree

7 files changed

+33
-16
lines changed

7 files changed

+33
-16
lines changed

.github/workflows/ci.yml

+9-4
Original file line numberDiff line numberDiff line change
@@ -83,8 +83,8 @@ jobs:
8383
path: |
8484
${{ steps.composercache.outputs.dir }}
8585
"build/php-code-coverage-cache"
86-
key: "php-${{ matrix.php-version }}-deps-${{ matrix.dependencies }}-${{ hashFiles('composer.json') }}"
87-
restore-keys: "php-${{ matrix.php-version }}-deps-${{ matrix.dependencies }}"
86+
key: "php-${{ matrix.php-version }}-deps-${{ matrix.dependencies }}-php-code-coverage-${{ matrix.php-code-coverage-version }}-symfony-${{ matrix.symfony }}-${{ hashFiles('composer.json') }}"
87+
restore-keys: "php-${{ matrix.php-version }}-deps-${{ matrix.dependencies }}-php-code-coverage-${{ matrix.php-code-coverage-version }}-symfony-${{ matrix.symfony }}"
8888

8989
- name: Force Symfony version
9090
if: matrix.symfony-version != ''
@@ -107,17 +107,22 @@ jobs:
107107

108108
- name: Install dependencies (low)
109109
if: matrix.dependencies == 'lowest'
110-
run: composer update --prefer-lowest --no-interaction --prefer-dist
110+
run: |
111+
composer update --prefer-lowest --no-interaction --prefer-dist;
112+
composer show;
111113
112114
- name: Install dependencies (high)
113115
if: matrix.dependencies == 'highest'
114-
run: composer update --no-interaction --prefer-dist
116+
run: |
117+
composer update --no-interaction --prefer-dist;
118+
composer show;
115119
116120
- name: Install dependencies (force latest)
117121
if: matrix.dependencies == 'force_latest'
118122
run: |
119123
composer config minimum-stability dev;
120124
composer update --no-interaction --prefer-dist --ignore-platform-reqs;
125+
composer show;
121126
122127
- name: Check code style
123128
if: matrix.php-version == '7.4' && matrix.symfony-version == '^5.0' && matrix.dependencies == 'highest'

CHANGELOG.md

+7-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,11 @@
11
# Changelog
22

3+
## [Unreleased] - 2021-xx-xx
4+
### Added
5+
- Compatibility with `phpunit/php-code-coverage` v10.
6+
### Changed
7+
- Deprecated `processUncoveredFiles` setting, it has been removed as of php-code-coverage v10.
8+
39
## [5.2.1] - 2021-01-10
410
### Fixed
511
- When Xdebug was enabled, but its coverage feature was disabled an exception was thrown. This scenario is now treated
@@ -70,7 +76,7 @@
7076

7177
[Unreleased]: https://github.com/dvdoug/behat-code-coverage/compare/v5.2.1...master
7278

73-
[5.2.1]: https://github.com/dvdoug/behat-code-coverage/compare/v5.2.1...v5.2.1
79+
[5.2.1]: https://github.com/dvdoug/behat-code-coverage/compare/v5.2.0...v5.2.1
7480
[5.2.0]: https://github.com/dvdoug/behat-code-coverage/compare/v5.1.1...v5.2.0
7581
[5.1.1]: https://github.com/dvdoug/behat-code-coverage/compare/v5.1.0...v5.1.1
7682
[5.1.0]: https://github.com/dvdoug/behat-code-coverage/compare/v5.0.0...v5.1.0

behat.yml.dist

-1
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@ default:
1313
directories:
1414
'src': ~
1515
includeUncoveredFiles: true
16-
processUncoveredFiles: false
1716
reports:
1817
cobertura:
1918
target: build/coverage-behat/cobertura.xml

composer.json

+2-2
Original file line numberDiff line numberDiff line change
@@ -15,15 +15,15 @@
1515
"php": "^7.3 || ^8.0",
1616
"composer-runtime-api": "^2.0",
1717
"behat/behat": "^3.5",
18-
"phpunit/php-code-coverage": "^9.2",
18+
"phpunit/php-code-coverage": "^9.2||^10.0",
1919
"symfony/console": "^4.4||^5.0",
2020
"symfony/config": "^4.4||^5.0",
2121
"symfony/dependency-injection": "^4.4||^5.0",
2222
"symfony/event-dispatcher": "^4.4||^5.0"
2323
},
2424
"require-dev": {
2525
"friendsofphp/php-cs-fixer": "^2.18.0",
26-
"phpunit/phpunit": "^9.5.0",
26+
"phpunit/phpunit": "^9.5.0||^10.0",
2727
"symfony/filesystem": "^4.4||^5.0"
2828
},
2929
"suggest": {

docs/configuration.rst

+4-3
Original file line numberDiff line numberDiff line change
@@ -77,9 +77,10 @@ By default uncovered files are **included** but not **processed**.
7777
*processing*, the files will be loaded via an ``include()`` call and passed through the driver in exactly the same way as
7878
covered files are. However, not all files can be safely loaded in this way, for instance ``include()``\ing a script
7979
may have runtime side-effects. Because Behat Code Coverage cannot know the structure of your codebase and which files
80-
are safe to ``include()`` and which are not, by default uncovered file processing is disabled for safety reasons. When
81-
processing of uncovered files is disabled, a less-efficient and limited emulation of executable code detection is
82-
performed out.
80+
are safe to ``include()`` and which are not, by default uncovered file processing is disabled for safety reasons.
81+
82+
.. note::
83+
The ``processUncoveredFiles`` setting has been removed in php-code-coverage v10, configuring it here is deprecated
8384

8485
Reports
8586
-------

phpunit.xml.dist

+1-1
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
</testsuites>
1616

1717
<!-- pathCoverage must be set false here for CI or PCOV/PHPDBG fail. It is enabled via CLI for Xdebug -->
18-
<coverage pathCoverage="false" processUncoveredFiles="true" cacheDirectory="build/phpunit-cache/coverage">
18+
<coverage pathCoverage="false" cacheDirectory="build/phpunit-cache/coverage">
1919

2020
<include>
2121
<directory>src</directory>

src/Extension.php

+10-4
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
use Behat\Testwork\ServiceContainer\Extension as ExtensionInterface;
1212
use Behat\Testwork\ServiceContainer\ExtensionManager;
1313
use DVDoug\Behat\CodeCoverage\Subscriber\EventSubscriber;
14+
use ReflectionClass;
1415
use SebastianBergmann\CodeCoverage\CodeCoverage;
1516
use SebastianBergmann\CodeCoverage\Driver\Driver;
1617
use SebastianBergmann\CodeCoverage\Driver\Selector;
@@ -75,6 +76,7 @@ public function configure(ArrayNodeDefinition $builder): void
7576
->end()
7677
->scalarNode('processUncoveredFiles')
7778
->defaultFalse()
79+
->setDeprecated('dvdoug/behat-code-coverage', '5.3', 'the processUncoveredFiles setting is deprecated, it has been removed from php-code-coverage v10')
7880
->end()
7981
->arrayNode('include')
8082
->addDefaultsIfNotSet()
@@ -250,10 +252,14 @@ public function initCodeCoverage(Filter $filter, array $filterConfig, ?bool $bra
250252
$codeCoverage->excludeUncoveredFiles();
251253
}
252254

253-
if ($filterConfig['processUncoveredFiles']) {
254-
$codeCoverage->processUncoveredFiles();
255-
} else {
256-
$codeCoverage->doNotProcessUncoveredFiles();
255+
$codeCoverageReflection = new ReflectionClass($codeCoverage);
256+
257+
if ($codeCoverageReflection->hasMethod('processUncoveredFiles')) {
258+
if ($filterConfig['processUncoveredFiles']) {
259+
$codeCoverage->processUncoveredFiles();
260+
} else {
261+
$codeCoverage->doNotProcessUncoveredFiles();
262+
}
257263
}
258264

259265
return $codeCoverage;

0 commit comments

Comments
 (0)