From 290b4e9c776be19ad01398d394c83e884c60252b Mon Sep 17 00:00:00 2001 From: Ben XO <75862+ben-xo@users.noreply.github.com> Date: Thu, 30 Dec 2021 17:40:20 +0000 Subject: [PATCH] Add PATH_COVERAGE option for more code coverage reporting. --- test/combine_coverage.php | 4 +++- test/dir2castWithCoverage.php | 8 +++++++- test/run.sh | 24 +++++++++++++++++++++++- 3 files changed, 33 insertions(+), 3 deletions(-) diff --git a/test/combine_coverage.php b/test/combine_coverage.php index f33c99b..d2ec281 100644 --- a/test/combine_coverage.php +++ b/test/combine_coverage.php @@ -1,5 +1,7 @@ process($codeCoverage); diff --git a/test/dir2castWithCoverage.php b/test/dir2castWithCoverage.php index 48028d6..38f4e8a 100644 --- a/test/dir2castWithCoverage.php +++ b/test/dir2castWithCoverage.php @@ -10,8 +10,14 @@ $filter = new Filter; $filter->includeDirectory('../../dir2cast.php'); +if(isset($_SERVER['PATH_COVERAGE']) && $_SERVER['PATH_COVERAGE'] != '') { + $selector = (new Selector)->forLineAndPathCoverage($filter); +} else { + $selector = (new Selector)->forLineCoverage($filter); +} + $coverage = new CodeCoverage( - (new Selector)->forLineCoverage($filter), + $selector, $filter ); diff --git a/test/run.sh b/test/run.sh index 836f383..5d6a005 100755 --- a/test/run.sh +++ b/test/run.sh @@ -1,6 +1,14 @@ #!/bin/bash set -e +# Test runner. +# +# Usage: +# +# ./test/run.sh # runs all tests +# ./test/run.sh FilenameTest.php # runs only that test +# PATH_COVERAGE=yes ./test/run.sh # adds more (but slower) coverage reporting + SCRIPT_DIR=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd ) cd "$SCRIPT_DIR" @@ -12,6 +20,20 @@ fi export XDEBUG_MODE=coverage rm -f /tmp/cov-* -../vendor/bin/phpunit --bootstrap "$SCRIPT_DIR/bootstrap.php" --coverage-php /tmp/cov-main --coverage-filter ../dir2cast.php ${tests[@]} + +export PATH_COVERAGE=${PATH_COVERAGE:-} +PATH_COVERAGE_OPTION="" + +if [[ "$PATH_COVERAGE" != '' ]]; then + PATH_COVERAGE_OPTION="--path-coverage" +fi + +../vendor/bin/phpunit \ + --bootstrap "$SCRIPT_DIR/bootstrap.php" \ + --coverage-php /tmp/cov-main \ + --coverage-filter ../dir2cast.php \ + $PATH_COVERAGE_OPTION \ + ${tests[@]} + php combine_coverage.php rm -rf testdir /tmp/cov-*