commiting uncommited changes on live site
[weblabels.fsf.org.git] / crm.fsf.org / 20131203 / files / sites / all / modules-new / civicrm / tools / scripts / phpunit-indiv
1 #!/bin/bash
2 function absdirname() {
3 pushd $(dirname $0) >> /dev/null
4 pwd
5 popd >> /dev/null
6 }
7
8 BINDIR=$(absdirname "$0")
9 PHP=${PHP:-php}
10 PHPUNIT=${PHPUNIT:-phpunit}
11 MODE=standalone
12 XMLDIR=
13 JSONDIR=
14
15 while [ -n "$1" ]; do
16 ARG="$1"
17 shift
18
19 case "$ARG" in
20 --civi)
21 MODE=civi
22 ;;
23 --civibuild-restore)
24 CIVIBUILD_RESTORE="$1"
25 shift
26 ;;
27 --test-dir)
28 TESTSUITE="$1"
29 shift
30 ;;
31 --json-dir)
32 JSONDIR="$1"
33 [ ! -d "$JSONDIR" ] && mkdir -p "$JSONDIR"
34 shift
35 ;;
36 --xml-dir)
37 XMLDIR="$1"
38 [ ! -d "$XMLDIR" ] && mkdir -p "$XMLDIR"
39 shift
40 ;;
41 *)
42 echo "unrecognized option: $ARG"
43 ;;
44 esac
45 done
46
47
48 if [ -z "$TESTSUITE" ]; then
49 echo "summary: Executes all tests in a suite (individually)"
50 echo "usage: $0 --test-dir <dir> [--json-dir <dir>] [--xml-dir <dir>] [--civi] [--civibuild-restore <build-name>]"
51 exit 1
52 fi
53
54
55 #phpunit-ls "$TESTSUITE"
56 $BINDIR/phpunit-ls "$TESTSUITE" | while read FILE CLASS METHOD ; do
57 ## Optionally reset DBs
58 if [ -n "$CIVIBUILD_RESTORE" ]; then
59 civibuild restore "$CIVIBUILD_RESTORE"
60 fi
61
62 ## Prepare test command
63 PHPUNITARGS="--tap"
64 if [ -n "$JSONDIR" ]; then
65 PHPUNITARGS="$PHPUNITARGS --log-json $JSONDIR/$CLASS-$METHOD.json"
66 fi
67 if [ -n "$XMLDIR" ]; then
68 PHPUNITARGS="$PHPUNITARGS --log-junit $XMLDIR/$CLASS-$METHOD.xml"
69 fi
70
71 ## Run the test!
72 if [ "$MODE" == "civi" ]; then
73 $PHP ./scripts/phpunit $PHPUNITARGS --filter $METHOD'( with.*)?$' "$CLASS"
74 fi
75 if [ "$MODE" == "standalone" ]; then
76 $PHP $(which $PHPUNIT) $PHPUNITARGS --filter $METHOD'( with.*)?$' "$FILE"
77 fi
78 done