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 |