From bfcdfa00b733f4dacccf71211f8461e51ea41cea Mon Sep 17 00:00:00 2001 From: Jean-Christophe Engel Date: Mon, 14 Oct 2024 10:07:24 +0200 Subject: [PATCH] =?UTF-8?q?runtest.sh=20:=20ajout=20option=20timeout=20+?= =?UTF-8?q?=20peaufinage=20l=C3=A9ger?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- runtest.sh | 61 +++++++++++++++++++++++++++++++++++++----------------- 1 file changed, 42 insertions(+), 19 deletions(-) diff --git a/runtest.sh b/runtest.sh index f8ddc5d..53a2982 100755 --- a/runtest.sh +++ b/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 <& 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