Skip to content

Instantly share code, notes, and snippets.

@nojimage
Created March 20, 2015 13:45
Show Gist options
  • Save nojimage/e0ca111f69b2d0392b98 to your computer and use it in GitHub Desktop.
Save nojimage/e0ca111f69b2d0392b98 to your computer and use it in GitHub Desktop.
NetBeansからVagrant上のbaserCMSのテストを実行するためのスクリプト
#!/usr/bin/env bash
##
# Custom PHPUnit script for Remote test on NetBaeans 8.0
##
#
# Change these settings to your env
#
REMOTE_PKEY=~/.vagrant.d/insecure_private_key
[email protected]
REMOTE_ROOT="/vagrant"
REMOTE_PHPUNIT="${REMOTE_ROOT}/vendors/bin/phpunit"
REMOTE_CAKETEST="${REMOTE_ROOT}/app/Console/cake baser_test"
REMOTE_SUITE_PATH="${REMOTE_ROOT}"
REMOTE_TESTCASE_PATH="${REMOTE_ROOT}/lib/Baser/Test/Case/"
XDEBUG_CONFIG="idekey=netbeans-xdebug"
###
LOCAL_ROOT=$(cd "$(dirname "$(dirname "$0")")" && pwd)
#echo $LOCAL_ROOT
## parse options
while [[ $# -gt 2 ]] ; do
#echo ">> ${1} ${2}"
case $1 in
'--colors' )
COLORS=1
;;
'--log-junit' )
JUNITLOG="$2"
shift
;;
'--bootstrap' )
BOOTSTRAP="$2"
shift
;;
'--filter' )
FILTER="$2"
shift
;;
'--coverage-clover' )
COVERAGE="$2"
shift
;;
esac
shift
done
SUITE=$1
RUN=$2
RUN=${RUN/--run=/}
REMOTE_BOOTSTRAP=${REMOTE_ROOT}${BOOTSTRAP/$LOCAL_ROOT/}
REMOTE_JUNITLOG=${JUNITLOG/\/var\//\/tmp\/}
REMOTE_CLOVERLOG=${CLOVERLOG/\/var\//\/tmp\/}
REMOTE_SUITE=${REMOTE_SUITE_PATH}/${SUITE##*/}
REMOTE_FILTER=${FILTER}
REMOTE_RUN=${RUN//$LOCAL_ROOT/$REMOTE_ROOT}
REMOTE_RUN=${REMOTE_RUN/$REMOTE_TESTCASE_PATH/}
# Debug output
#echo $COLORS
#echo $REMOTE_BOOTSTRAP
#echo $REMOTE_JUNITLOG
#echo $REMOTE_FILTER
#echo $REMOTE_CLOVERLOG
#echo $REMOTE_SUITE
#echo $REMOTE_RUN
# Remove logfile
ssh -q -i $REMOTE_PKEY $REMOTE_SERVER "if [ -f $REMOTE_JUNITLOG ] ; then rm $REMOTE_JUNITLOG; fi"
if [[ -n "$COVERAGE" ]] ; then
ssh -q -i $REMOTE_PKEY $REMOTE_SERVER "if [ -f $REMOTE_CLOVERLOG ] ; then rm $REMOTE_CLOVERLOG; fi"
fi
# Copy suite file
#scp -q -i $REMOTE_PKEY "$SUITE" $REMOTE_SERVER:$REMOTE_SUITE
# rsync
#vagrant rsync
## Build test command
COMMAND="cd $REMOTE_ROOT; XDEBUG_CONFIG=${XDEBUG_CONFIG} ${REMOTE_CAKETEST} --stderr "
if [[ ! -n "$COLORS" ]] ; then
COMMAND="${COMMAND} --no-colors"
fi
if [[ -n "$JUNITLOG" ]] ; then
COMMAND="${COMMAND} --log-junit ${REMOTE_JUNITLOG}"
fi
if [[ -n "$BOOTSTRAP" ]] ; then
COMMAND="${COMMAND} --bootstrap ${REMOTE_BOOTSTRAP}"
fi
if [[ -n "$FILTER" ]] ; then
COMMAND="${COMMAND} --filter '${REMOTE_FILTER}'"
fi
if [[ -n "$COVERAGE" ]] ; then
COMMAND="${COMMAND} --coverage-clover ${REMOTE_COVERAGE}"
fi
COMMAND="${COMMAND} baser \"${REMOTE_RUN}\""
## Execute
#echo $COMMAND
ssh -q -i $REMOTE_PKEY $REMOTE_SERVER "$COMMAND"
# Copy the test output back to your local machine, where NetBeans expects to find it
# might not work on mac. definitely won't work on win!
scp -q -i $REMOTE_PKEY $REMOTE_SERVER:$REMOTE_JUNITLOG "$JUNITLOG.tmp"
sed -e "s~$REMOTE_ROOT~$LOCAL_ROOT~g" "$JUNITLOG.tmp" > $JUNITLOG
if [[ -n "$COVERAGE" ]] ; then
scp -q -i $REMOTE_PKEY $REMOTE_SERVER:"$REMOTE_CLOVERLOG" "$COVERAGE.tmp"
sed -e "s~$REMOTE_ROOT~$LOCAL_ROOT~g" "$COVERAGE.tmp" > $COVERAGE
fi
@nojimage
Copy link
Author

/vendors/ ディレクトリあたりに設置してカスタムPHPunitスクリプトに登録すればたぶんOK

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment