phpunit-indiv - Change args. Generate XML and/or JSON.
[civicrm-core.git] / tools / scripts / phpunit-indiv
CommitLineData
f03dc6b0
TO
1#!/bin/bash
2PHP=${PHP:-php}
3PHPUNIT=${PHPUNIT:-phpunit}
4MODE=standalone
35e0b420
TO
5XMLDIR=
6JSONDIR=
f03dc6b0 7
35e0b420
TO
8while [ -n "$1" ]; do
9 ARG="$1"
f03dc6b0 10 shift
f03dc6b0 11
35e0b420
TO
12 case "$ARG" in
13 --civi)
14 MODE=civi
15 ;;
16 --test-dir)
17 TESTSUITE="$1"
18 shift
19 ;;
20 --json-dir)
21 JSONDIR="$1"
22 [ ! -d "$JSONDIR" ] && mkdir -p "$JSONDIR"
23 shift
24 ;;
25 --xml-dir)
26 XMLDIR="$1"
27 [ ! -d "$XMLDIR" ] && mkdir -p "$XMLDIR"
28 shift
29 ;;
30 *)
31 echo "unrecognized option: $ARG"
32 ;;
33 esac
34done
f03dc6b0 35
f03dc6b0 36
35e0b420 37if [ -z "$TESTSUITE" ]; then
f03dc6b0 38 echo "summary: Executes all tests in a suite (individually)"
35e0b420 39 echo "usage: $0 --test-dir <dir> [--json-dir <dir>] [--xml-dir <dir>] [--civi]"
f03dc6b0
TO
40 exit 1
41fi
42
f03dc6b0
TO
43
44#phpunit-ls "$TESTSUITE"
45phpunit-ls "$TESTSUITE" | while read FILE CLASS METHOD ; do
35e0b420
TO
46 PHPUNITARGS="--tap"
47 if [ -n "$JSONDIR" ]; then
48 PHPUNITARGS="$PHPUNITARGS --log-json $JSONDIR/$CLASS-$METHOD.json"
49 fi
50 if [ -n "$XMLDIR" ]; then
51 PHPUNITARGS="$PHPUNITARGS --log-junit $XMLDIR/$CLASS-$METHOD.xml"
52 fi
53
54
f03dc6b0 55 if [ "$MODE" == "civi" ]; then
35e0b420 56 $PHP ./scripts/phpunit $PHPUNITARGS --filter $METHOD'( with.*)?$' "$CLASS"
f03dc6b0
TO
57 fi
58 if [ "$MODE" == "standalone" ]; then
35e0b420 59 $PHP $(which $PHPUNIT) $PHPUNITARGS --filter $METHOD'( with.*)?$' "$FILE"
f03dc6b0
TO
60 fi
61done