runtest.sh : ajout option timeout + peaufinage léger
This commit is contained in:
parent
48f9693ee1
commit
bfcdfa00b7
61
runtest.sh
61
runtest.sh
@ -1,36 +1,42 @@
|
||||
#!/bin/bash
|
||||
|
||||
# TODO :
|
||||
# - passer le nom du script selenium en argument
|
||||
# - si zenity n'est pas disponible, faire un menu en mode texte
|
||||
|
||||
|
||||
# ------------------------------------------------------------------------
|
||||
# exécuter le test et tuer le processus quand le message de fin apparait
|
||||
# ceci pour essayer de contourner le bug qui envoie le message ci-dessous :
|
||||
#
|
||||
# Exécuter un ou plusieurs tests d'un fichier selenium
|
||||
# au préalable :
|
||||
# - convertir le fichier généré par l'IDE dans le format attendu par le runner
|
||||
# - copier « au bon endroit » (/tmp) les fichiers pour les tests d'import
|
||||
#
|
||||
# Remarque : je tue le processus quand le message de fin apparait
|
||||
# pour essayer de contourner le bug qui envoie le message ci-dessous :
|
||||
#
|
||||
# Jest did not exit one second after the test run has completed.
|
||||
#
|
||||
# 'This usually means that there are asynchronous operations that
|
||||
# weren't stopped in your tests. Consider running Jest with
|
||||
# `--detectOpenHandles` to troubleshoot this issue.
|
||||
# voir aussi https://github.com/SeleniumHQ/selenium-ide/issues/1819
|
||||
#
|
||||
# TODO :
|
||||
# - si zenity n'est pas disponible, faire un menu en mode texte
|
||||
# voir du côté de jq (bôf)
|
||||
# ------------------------------------------------------------------------
|
||||
|
||||
aide()
|
||||
{
|
||||
cat <<EOF
|
||||
cat <<EOF >& 2
|
||||
Exécuter un, plusieurs ou tous les tests d'un fichier de test Selenium
|
||||
Appel : $(basename $0) [-f fichier] [-a] [-c] [-n] [-z répertoire] [-h] [test ..]
|
||||
Appel : $(basename $0) -f fichier [-a] [-c] [-n] [-v] [-z répertoire] [-h] [-t timeout] [test ..]
|
||||
|
||||
-f fichier : fichier de test (défaut : membres.side)
|
||||
-f fichier : fichier de test
|
||||
-a : exécuter tous les tests du fichier
|
||||
-c : afficher la fenêtre de chrome
|
||||
-n : ne pas tuer le processus en fin de test
|
||||
-v : afficher la ligne de commande
|
||||
-z répertoire : sauver une copie d'écran dans le répertoire indiqué
|
||||
-z répertoire : sauver une copie d'écran dans le répertoire en cas d'échec
|
||||
-t timeout : définir une attente max (défaut : 200000 ms)
|
||||
-h : afficher cette aide
|
||||
test : nom (partiel ou complet) d'un test ou d'une suite à exécuter
|
||||
si absent, affiche un sélecteur pour choisir une des suites du fichier
|
||||
EOF
|
||||
}
|
||||
|
||||
@ -63,24 +69,23 @@ traiter_test()
|
||||
# les constantes
|
||||
CHROME_OPTIONS=disable-search-engine-choice-screen,disable-infobars
|
||||
JEST_OPTIONS='"\"--detectOpenHandles\""'
|
||||
TIMEOUT=1000000
|
||||
TIMEOUT=200000
|
||||
|
||||
# les options
|
||||
IMGDIR=""
|
||||
KILL=1
|
||||
TESTFILE=membres_v3.side
|
||||
declare -A options
|
||||
options=(
|
||||
declare -A options=(
|
||||
[--jest-timeout]=${TIMEOUT}
|
||||
[--jest-options]=${JEST_OPTIONS}
|
||||
)
|
||||
|
||||
ARGS=""
|
||||
# Traiter les arguments
|
||||
ARGS=""
|
||||
while [[ $# -gt 0 ]]
|
||||
do
|
||||
case "$1" in
|
||||
-f )
|
||||
# nom du fichier de test
|
||||
shift
|
||||
TESTFILE="$1"
|
||||
if
|
||||
@ -105,6 +110,12 @@ do
|
||||
KILL=0
|
||||
shift
|
||||
;;
|
||||
-t )
|
||||
# timeout
|
||||
shift
|
||||
TIMEOUT="$1"
|
||||
shift
|
||||
;;
|
||||
-v )
|
||||
# afficher la ligne de commande
|
||||
AFFCOMM=1
|
||||
@ -121,6 +132,7 @@ do
|
||||
exit
|
||||
;;
|
||||
-* )
|
||||
# autres arguments de selenium-side-runner (+-)
|
||||
ARGS+=" $1"
|
||||
shift
|
||||
;;
|
||||
@ -131,6 +143,14 @@ do
|
||||
esac
|
||||
done
|
||||
|
||||
# vérifier si on a un nom de fichier
|
||||
if [[ -z "$TESTFILE" ]]
|
||||
then
|
||||
printf "\n*** Erreur : il manque le nom du fichier de test ***\n\n" >& 2
|
||||
aide
|
||||
exit
|
||||
fi
|
||||
|
||||
if [[ -z "$CHROME" ]]
|
||||
then
|
||||
CHROME_OPTIONS="${CHROME_OPTIONS},headless"
|
||||
@ -142,6 +162,8 @@ then
|
||||
options[-z]+=${IMGDIR}
|
||||
fi
|
||||
|
||||
options[--timeout]=${TIMEOUT}
|
||||
|
||||
# la commande
|
||||
COMMANDE="selenium-side-runner $ARGS"
|
||||
for elem in ${!options[@]}
|
||||
@ -158,8 +180,9 @@ fi
|
||||
|
||||
# copier les fichiers à envoyer dans /tmp
|
||||
rm -f Membres*.csv *membres.csv
|
||||
cp -p *.csv /tmp
|
||||
cp -p cv*.pdf /tmp
|
||||
cp -p fichiers/* /tmp
|
||||
|
||||
# exécuter les tests
|
||||
|
||||
if [[ "$TESTS" == "tous" ]]
|
||||
then
|
||||
|
Loading…
Reference in New Issue
Block a user