Hi.
Right now, PHP Censor seems to report coverage and artifacts from the generated HTML report.
In some cases (e.g., when the test invokes a headless browser through a behat/mink driver), the reported coverage is not accurate ---generation of coverage on both ends is required.
In order to solve the issue, one can modify the application router (e.g., web/app_test.php) to generate the actual coverage of each request from the browser's side (in PHP format) (using SebastianBergmann\CodeCoverage API). The generated files can later be combined with the the PHPUnit report (also in PHP format), using phpcov's merge option.
So the proposed feature comes down to:
- adding one configuration option to the PHPUnit plugin, to indicate where to find the partial coverage files. For example:
test:
php_unit:
config:
- "phpunit.xml.dist"
coverage: "tests/reports/coverage"
coverage_php: "tests/reports/tmp"
- If applicable and/or possible, checking that there's a logging option for the PHP report in the phpuni.xml[.dist] file
<log type="coverage-php"
target="tests/reports/tmp/coverage.cov"
/>
bin/phpcov ${coverage_php} ${coverage}
If there's no coverage_php option in the project's configuration, then the behavior is the current one.
Hi.
Right now, PHP Censor seems to report coverage and artifacts from the generated HTML report.
In some cases (e.g., when the test invokes a headless browser through a behat/mink driver), the reported coverage is not accurate ---generation of coverage on both ends is required.
In order to solve the issue, one can modify the application router (e.g.,
web/app_test.php) to generate the actual coverage of each request from the browser's side (in PHP format) (using SebastianBergmann\CodeCoverage API). The generated files can later be combined with the the PHPUnit report (also in PHP format), using phpcov's merge option.So the proposed feature comes down to:
Check that the
bin/phpcovexecutable existsAfter the tests run, generate the HTML report with
If there's no
coverage_phpoption in the project's configuration, then the behavior is the current one.