Merge pull request #3828 from johanv/CRM-15104-line_item_issues_participant_api
[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 --test-dir)
24 TESTSUITE="$1"
25 shift
26 ;;
27 --json-dir)
28 JSONDIR="$1"
29 [ ! -d "$JSONDIR" ] && mkdir -p "$JSONDIR"
30 shift
31 ;;
32 --xml-dir)
33 XMLDIR="$1"
34 [ ! -d "$XMLDIR" ] && mkdir -p "$XMLDIR"
35 shift
36 ;;
37 *)
38 echo "unrecognized option: $ARG"
39 ;;
40 esac
41 done
42
43
44 if [ -z "$TESTSUITE" ]; then
45 echo "summary: Executes all tests in a suite (individually)"
46 echo "usage: $0 --test-dir <dir> [--json-dir <dir>] [--xml-dir <dir>] [--civi]"
47 exit 1
48 fi
49
50
51 #phpunit-ls "$TESTSUITE"
52 $BINDIR/phpunit-ls "$TESTSUITE" | while read FILE CLASS METHOD ; do
53 PHPUNITARGS="--tap"
54 if [ -n "$JSONDIR" ]; then
55 PHPUNITARGS="$PHPUNITARGS --log-json $JSONDIR/$CLASS-$METHOD.json"
56 fi
57 if [ -n "$XMLDIR" ]; then
58 PHPUNITARGS="$PHPUNITARGS --log-junit $XMLDIR/$CLASS-$METHOD.xml"
59 fi
60
61
62 if [ "$MODE" == "civi" ]; then
63 $PHP ./scripts/phpunit $PHPUNITARGS --filter $METHOD'( with.*)?$' "$CLASS"
64 fi
65 if [ "$MODE" == "standalone" ]; then
66 $PHP $(which $PHPUNIT) $PHPUNITARGS --filter $METHOD'( with.*)?$' "$FILE"
67 fi
68 done