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
|
#!/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.
|
# Jest did not exit one second after the test run has completed.
|
||||||
#
|
|
||||||
# 'This usually means that there are asynchronous operations that
|
# 'This usually means that there are asynchronous operations that
|
||||||
# weren't stopped in your tests. Consider running Jest with
|
# weren't stopped in your tests. Consider running Jest with
|
||||||
# `--detectOpenHandles` to troubleshoot this issue.
|
# `--detectOpenHandles` to troubleshoot this issue.
|
||||||
# voir aussi https://github.com/SeleniumHQ/selenium-ide/issues/1819
|
# 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()
|
aide()
|
||||||
{
|
{
|
||||||
cat <<EOF
|
cat <<EOF >& 2
|
||||||
Exécuter un, plusieurs ou tous les tests d'un fichier de test Selenium
|
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
|
-a : exécuter tous les tests du fichier
|
||||||
-c : afficher la fenêtre de chrome
|
-c : afficher la fenêtre de chrome
|
||||||
-n : ne pas tuer le processus en fin de test
|
-n : ne pas tuer le processus en fin de test
|
||||||
-v : afficher la ligne de commande
|
-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
|
-h : afficher cette aide
|
||||||
test : nom (partiel ou complet) d'un test ou d'une suite à exécuter
|
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
|
EOF
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -63,24 +69,23 @@ traiter_test()
|
|||||||
# les constantes
|
# les constantes
|
||||||
CHROME_OPTIONS=disable-search-engine-choice-screen,disable-infobars
|
CHROME_OPTIONS=disable-search-engine-choice-screen,disable-infobars
|
||||||
JEST_OPTIONS='"\"--detectOpenHandles\""'
|
JEST_OPTIONS='"\"--detectOpenHandles\""'
|
||||||
TIMEOUT=1000000
|
TIMEOUT=200000
|
||||||
|
|
||||||
# les options
|
# les options
|
||||||
IMGDIR=""
|
IMGDIR=""
|
||||||
KILL=1
|
KILL=1
|
||||||
TESTFILE=membres_v3.side
|
declare -A options=(
|
||||||
declare -A options
|
|
||||||
options=(
|
|
||||||
[--jest-timeout]=${TIMEOUT}
|
[--jest-timeout]=${TIMEOUT}
|
||||||
[--jest-options]=${JEST_OPTIONS}
|
[--jest-options]=${JEST_OPTIONS}
|
||||||
)
|
)
|
||||||
|
|
||||||
ARGS=""
|
|
||||||
# Traiter les arguments
|
# Traiter les arguments
|
||||||
|
ARGS=""
|
||||||
while [[ $# -gt 0 ]]
|
while [[ $# -gt 0 ]]
|
||||||
do
|
do
|
||||||
case "$1" in
|
case "$1" in
|
||||||
-f )
|
-f )
|
||||||
|
# nom du fichier de test
|
||||||
shift
|
shift
|
||||||
TESTFILE="$1"
|
TESTFILE="$1"
|
||||||
if
|
if
|
||||||
@ -105,6 +110,12 @@ do
|
|||||||
KILL=0
|
KILL=0
|
||||||
shift
|
shift
|
||||||
;;
|
;;
|
||||||
|
-t )
|
||||||
|
# timeout
|
||||||
|
shift
|
||||||
|
TIMEOUT="$1"
|
||||||
|
shift
|
||||||
|
;;
|
||||||
-v )
|
-v )
|
||||||
# afficher la ligne de commande
|
# afficher la ligne de commande
|
||||||
AFFCOMM=1
|
AFFCOMM=1
|
||||||
@ -121,6 +132,7 @@ do
|
|||||||
exit
|
exit
|
||||||
;;
|
;;
|
||||||
-* )
|
-* )
|
||||||
|
# autres arguments de selenium-side-runner (+-)
|
||||||
ARGS+=" $1"
|
ARGS+=" $1"
|
||||||
shift
|
shift
|
||||||
;;
|
;;
|
||||||
@ -131,6 +143,14 @@ do
|
|||||||
esac
|
esac
|
||||||
done
|
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" ]]
|
if [[ -z "$CHROME" ]]
|
||||||
then
|
then
|
||||||
CHROME_OPTIONS="${CHROME_OPTIONS},headless"
|
CHROME_OPTIONS="${CHROME_OPTIONS},headless"
|
||||||
@ -142,6 +162,8 @@ then
|
|||||||
options[-z]+=${IMGDIR}
|
options[-z]+=${IMGDIR}
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
options[--timeout]=${TIMEOUT}
|
||||||
|
|
||||||
# la commande
|
# la commande
|
||||||
COMMANDE="selenium-side-runner $ARGS"
|
COMMANDE="selenium-side-runner $ARGS"
|
||||||
for elem in ${!options[@]}
|
for elem in ${!options[@]}
|
||||||
@ -158,8 +180,9 @@ fi
|
|||||||
|
|
||||||
# copier les fichiers à envoyer dans /tmp
|
# copier les fichiers à envoyer dans /tmp
|
||||||
rm -f Membres*.csv *membres.csv
|
rm -f Membres*.csv *membres.csv
|
||||||
cp -p *.csv /tmp
|
cp -p fichiers/* /tmp
|
||||||
cp -p cv*.pdf /tmp
|
|
||||||
|
# exécuter les tests
|
||||||
|
|
||||||
if [[ "$TESTS" == "tous" ]]
|
if [[ "$TESTS" == "tous" ]]
|
||||||
then
|
then
|
||||||
|
Loading…
Reference in New Issue
Block a user