province abbreviation patch - issue 724
[civicrm-core.git] / 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 if [ -z "$FILE" -o ! -f "$FILE" ]; then continue; fi
58 echo "[[Processing $FILE $CLASS::$METHOD]]"
59 ## Optionally reset DBs
60 if [ -n "$CIVIBUILD_RESTORE" ]; then
61 civibuild restore "$CIVIBUILD_RESTORE"
62 fi
63
64 ## Prepare test command
65 PHPUNITARGS="--tap"
66 if [ -n "$JSONDIR" ]; then
67 PHPUNITARGS="$PHPUNITARGS --log-json $JSONDIR/$CLASS-$METHOD.json"
68 fi
69 if [ -n "$XMLDIR" ]; then
70 PHPUNITARGS="$PHPUNITARGS --log-junit $XMLDIR/$CLASS-$METHOD.xml"
71 fi
72
73 ## Run the test!
74 if [ "$MODE" == "civi" ]; then
75 $PHP ./scripts/phpunit $PHPUNITARGS --filter $METHOD'( with.*)?$' "$CLASS"
76 fi
77 if [ "$MODE" == "standalone" ]; then
78 $PHP $(which $PHPUNIT) $PHPUNITARGS --filter $METHOD'( with.*)?$' "$FILE"
79 fi
80 done