Skip to content

Instantly share code, notes, and snippets.

@Comrade42
Last active December 9, 2016 10:16
Show Gist options
  • Save Comrade42/56f9a08bbda10ec1db49248112385b31 to your computer and use it in GitHub Desktop.
Save Comrade42/56f9a08bbda10ec1db49248112385b31 to your computer and use it in GitHub Desktop.
PHP Patch Coverage

Shows changed executable lines that are not covered with unit tests.

git checkout <SOURCE_BRANCH_NAME>
./patch-coverage.sh <TARGET_BRANCH_NAME>
#!/bin/bash
if [ $1 ]; then
BRANCH_NAME=$1
else
echo "Branch name required!"
exit 1
fi
GIT_BIN=`which git`
PHPUNIT_BIN=`which phpunit`
PHPCOV_BIN=`which phpcov`
PATCH_FILE="/tmp/patch.txt"
COVERAGE_FILE="/tmp/coverage.cov"
CURRENT_PATH=`pwd`
GREEN='\033[0;32m'
NC='\033[0m' # No Color
echo -e "${GREEN}RUN: ${GIT_BIN} diff ${BRANCH_NAME} > ${PATCH_FILE}${NC}"
${GIT_BIN} diff ${BRANCH_NAME} > ${PATCH_FILE}
if [ $? -eq 0 ]; then
echo -e "${GREEN}RUN: ${PHPUNIT_BIN} --coverage-php ${COVERAGE_FILE} --coverage-html ./build${NC}"
${PHPUNIT_BIN} --coverage-php ${COVERAGE_FILE} --coverage-html ./build
if [ $? -eq 0 ]; then
echo -e "${GREEN}RUN: ${PHPCOV_BIN} patch-coverage ${COVERAGE_FILE} --patch ${PATCH_FILE} --path-prefix ${CURRENT_PATH}${NC}"
${PHPCOV_BIN} patch-coverage ${COVERAGE_FILE} --patch ${PATCH_FILE} --path-prefix ${CURRENT_PATH}
echo -e "${GREEN}RUN: rm ${COVERAGE_FILE}${NC}"
rm ${COVERAGE_FILE}
fi
echo -e "${GREEN}RUN: rm ${PATCH_FILE}${NC}"
rm ${PATCH_FILE}
fi
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment