phpunit-indiv - Change args. Generate XML and/or JSON.
[civicrm-core.git] / tools / scripts / phpunit-indiv
... / ...
CommitLineData
1#!/bin/bash
2PHP=${PHP:-php}
3PHPUNIT=${PHPUNIT:-phpunit}
4MODE=standalone
5XMLDIR=
6JSONDIR=
7
8while [ -n "$1" ]; do
9 ARG="$1"
10 shift
11
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
35
36
37if [ -z "$TESTSUITE" ]; then
38 echo "summary: Executes all tests in a suite (individually)"
39 echo "usage: $0 --test-dir <dir> [--json-dir <dir>] [--xml-dir <dir>] [--civi]"
40 exit 1
41fi
42
43
44#phpunit-ls "$TESTSUITE"
45phpunit-ls "$TESTSUITE" | while read FILE CLASS METHOD ; do
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
55 if [ "$MODE" == "civi" ]; then
56 $PHP ./scripts/phpunit $PHPUNITARGS --filter $METHOD'( with.*)?$' "$CLASS"
57 fi
58 if [ "$MODE" == "standalone" ]; then
59 $PHP $(which $PHPUNIT) $PHPUNITARGS --filter $METHOD'( with.*)?$' "$FILE"
60 fi
61done