From 6f0d282b3450344c69230a177a9e80a714bbfcb7 Mon Sep 17 00:00:00 2001 From: Joseph Edmonds Date: Fri, 3 Aug 2018 13:40:27 +0000 Subject: [PATCH 1/2] allowing phpunit to be put into iterative mode --- includes/generic/phpunit.inc.bash | 11 ++++++++--- includes/generic/setConfig.inc.bash | 3 +++ 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/includes/generic/phpunit.inc.bash b/includes/generic/phpunit.inc.bash index 6f415c7..671c6de 100644 --- a/includes/generic/phpunit.inc.bash +++ b/includes/generic/phpunit.inc.bash @@ -36,10 +36,15 @@ do # phpunitFailedOnlyFiltered=1 # fi # fi - noCoverage=(" ") + extraConfigs=(" ") if [[ "1" != "$phpUnitCoverage" ]] then - noCoverage+=( --no-coverage ) + extraConfigs+=( --no-coverage ) + fi + if [[ "1" == "$phpUnitIterativeMode" ]] + then + extraConfigs+=( --order-by=depends,defects ) + extraConfigs+=( --stop-on-failure --stop-on-error --stop-on-defect --stop-on-warning ) fi set +e set -x @@ -48,7 +53,7 @@ do ${paratestConfig[@]} \ -c ${phpUnitConfigPath} \ ${rerunFilter[@]} \ - ${noCoverage[@]} \ + ${extraConfigs[@]} \ --enforce-time-limit \ --fail-on-risky \ --fail-on-warning \ diff --git a/includes/generic/setConfig.inc.bash b/includes/generic/setConfig.inc.bash index c9899b4..4f6f9e7 100644 --- a/includes/generic/setConfig.inc.bash +++ b/includes/generic/setConfig.inc.bash @@ -36,6 +36,9 @@ phpcsFailOnWarning=0 ##PHPUnit Configs +#Iterative Mode - prioritises runnign failed tests and stops on first error +phpUnitIterativeMode=${phpUnitIterativeMode:-0} + # PHPUnit Quick Tests - optional skip slow tests phpUnitQuickTests=${phpUnitQuickTests:-0} From 4d134277f83a568feec0de6b4ecc47a35f829db4 Mon Sep 17 00:00:00 2001 From: Joseph Edmonds Date: Fri, 3 Aug 2018 13:44:24 +0000 Subject: [PATCH 2/2] uniterate mode with env variable or single tool shortcut --- includes/generic/phpunit.inc.bash | 4 ++++ includes/options.inc.bash | 2 ++ 2 files changed, 6 insertions(+) diff --git a/includes/generic/phpunit.inc.bash b/includes/generic/phpunit.inc.bash index 671c6de..d051d34 100644 --- a/includes/generic/phpunit.inc.bash +++ b/includes/generic/phpunit.inc.bash @@ -43,6 +43,10 @@ do fi if [[ "1" == "$phpUnitIterativeMode" ]] then + echo + echo "Uniterate Mode - Iterative Testing with Fast Failure" + echo "----------------------------------------------------" + echo extraConfigs+=( --order-by=depends,defects ) extraConfigs+=( --stop-on-failure --stop-on-error --stop-on-defect --stop-on-warning ) fi diff --git a/includes/options.inc.bash b/includes/options.inc.bash index 5474531..62be79a 100644 --- a/includes/options.inc.bash +++ b/includes/options.inc.bash @@ -28,6 +28,7 @@ function usage { echo " stan|phpstan phpstan" echo " ann|phpunitAnnotations phpunitAnnotations" echo " unit|phpunit phpunit" + echo " uniterate phpunit iterative mode - prioritise broken tests and fail on error" echo " infect|infection infection" echo " md|messdetector php mess detector" echo " ml|markdown markdown validation" @@ -63,6 +64,7 @@ then stan | phpstan ) singleToolToRun="phpstan";; ann | phpunitAnnotations ) singleToolToRun="phpunitAnnotations";; unit | phpunit ) singleToolToRun="phpunit";; + uniterate ) singleToolToRun="phpunit"; phpUnitIterativeMode=1;; infect | infection ) singleToolToRun="infection";; md | messdetector ) singleToolToRun="messDetector";; ml | markdown ) singleToolToRun="markdownLinks";;