Automatiser le débogage

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
mdanielm
Membre émérite
Membre émérite
Messages : 254
Enregistré le : mer. 11 déc. 2013 19:48
Status : Hors ligne

Automatiser le débogage

#1

Message par mdanielm »

Bonjour à tous,

J'ai un dossier avec quelques milliers de scripts au3.
(Vous aussi, cherchez bien!)

Je voudrais savoir quels sont ceux qui contiennent une erreur de syntaxe et si possible une erreur d'exécution. Par exemple est-il possible de lancer l'exécution 10s puis de tuer le processus en récupérant préalablement les erreurs?

J'ai trouvé ça qui ne répond qu'au premier point:

AllAu3.bat
@echo off
for %%i in (c:\"program files (x86)"\autoit3\Examples\ Helpfile\*.au3) do .\OneAu3.bat %%i

OneAu3.bat
@echo off
c:\"program files (x86)"\autoit3\au3Check.exe %1 >> log.txt


Il manque sans doute quelques paramètres judicieux à au3Check.exe

Merci d'avance pour le temps passé à chercher malgré vos occupations professionnelles et familiales très envahissantes.
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11773
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: Automatiser le débogage

#2

Message par Tlem »

ReBonjour Daniel.
Ce type de fonctionnement ne fonctionnera que pour la partie syntaxe et warning, car pour les erreurs d’exécutions, dans le cas d'une boite de dialogue, d'une sélection, d'une attente d'une entrée, etc ... cela ne fonctionnera pas.

Pour checker les fichiers au3 avec Au3Check, je te propose le batch joint (hé oui, je ne fait pas tout en AutoIt). ^^
Il faut modifier le chemin vers tes fichiers à tester et le chemin d'AutoIt si tu n'est pas sur une installation standard x64.
Fichiers joints
Au3CheckFiles.bat
(1.12 Kio) Téléchargé 155 fois
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Avatar du membre
Hackoo
Niveau 4
Niveau 4
Messages : 52
Enregistré le : ven. 03 févr. 2012 19:31
Localisation : Tunisie
Status : Hors ligne

Re: Automatiser le débogage

#3

Message par Hackoo »

Salut :wink:
Voici ce que j'ai fait pour vous comme script batch, je l'ai testé sur windows 10 (32 bits)
Donc juste utiliser un seul script batch Au3CheckDebug.bat au lieu de deux :D
@echo off
>nul chcp 65001
Mode 70,5 & color 0A
Title Débogage des scripts (*.au3) avec Au3Check.exe by Hackoo 2018
echo(
echo  *******************************************************************
echo   Patienter un peu... le débogage des fichiers *.au3 est en cours ...
echo  *******************************************************************
Timeout /T 2 /nobreak>nul
IF /I "%PROCESSOR_ARCHITECTURE%"=="x86" (
   Set "strProgramFiles=%programfiles%"
   Set "Au3Check=%programfiles%\autoit3\au3Check.exe"
) else (
   Set "strProgramFiles=%programfiles(x86)%"
   Set "Au3Check=%ProgramFiles(x86)%\autoit3\au3Check.exe"
)
Set "Folder=%strprogramfiles%\autoit3\Examples\Helpfile\"
Set "DebugLogFile=%~dp0DebugLogFile.txt"
If exist "%DebugLogFile%" Del "%DebugLogFile%"
CD /D "%Folder%"
for %%i in (*.au3) do (call:DebugMe %%i)
Start "" "%DebugLogFile%" & exit
::************************************************************
:DebugMe
cls
echo(
(
echo        ******************************************************
echo         Débogage du fichier "%~nx1"
echo        ******************************************************
)>con
("%Au3Check%" "%~1" | findstr /IV "Team")>> "%DebugLogFile%"
goto :eof
::************************************************************
Au3CheckDebug.bat
(1.25 Kio) Téléchargé 119 fois
La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information. Albert Einstein
Le savoir est la seule matière qui s'accroît quand on la partage. Socrate
mdanielm
Membre émérite
Membre émérite
Messages : 254
Enregistré le : mer. 11 déc. 2013 19:48
Status : Hors ligne

Re: Automatiser le débogage

#4

Message par mdanielm »

Bravo pour l'exercice de style, mais ça ne fait pas avancer le smilblik.
Avatar du membre
Hackoo
Niveau 4
Niveau 4
Messages : 52
Enregistré le : ven. 03 févr. 2012 19:31
Localisation : Tunisie
Status : Hors ligne

Re: Automatiser le débogage

#5

Message par Hackoo »

mdanielm a écrit : ven. 02 mars 2018 21:09 Bravo pour l'exercice de style, mais ça ne fait pas avancer le smilblik.
Càd quoi ça avance pas, SVP, soyez plus explicit
Est-ce-qu'il y a des erreurs ? si oui ==> ou exactement ?
Merci!
La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information. Albert Einstein
Le savoir est la seule matière qui s'accroît quand on la partage. Socrate
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11773
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: Automatiser le débogage

#6

Message par Tlem »

mdanielm a écrit :Je voudrais savoir quels sont ceux qui contiennent une erreur de syntaxe
Oui cela est possible avec l'outil batch donné.

mdanielm a écrit :et si possible une erreur d'exécution.
S'il n'y a pas d'erreur de syntaxe ou de Warning, les probabilités que le script fonctionne est assez élevé (sans avoir du 100%, mais c'est déjà pas mal).

mdanielm a écrit :est-il possible de lancer l'exécution 10s puis de tuer le processus en récupérant préalablement les erreurs?
Oui cela est possible, mais si le script utilise une fonction bloquante (MsgBox, InputBox, etc ...), alors tu n'aura pas pu tester la totalité du fonctionnement du script.

Puisque tu insiste à vouloir traduire les exemples de la doc, je te suggère de faire le plus gros en automatique et si un jour un utilisateur remonte l'info comme de quoi tel ou tel exemple ne fonctionne pas il sera toujours temps d'effectuer les corrections dans un second temps.
Pour ma part, je laisserais les exemples tels quels sans les Franciser car en cas de modification importante la masse de travail sera conséquente. ^^
Comme il n'y a aucune transparence sur les modifications effectuées coté US, il faut à chaque fois comparer la totalité des fichiers pour connaitre les différences. Lorsque les modifications sont légères, ça passe, mais lorsque des centaines voir des milliers de fichiers sont à modifier de manière significative, c'est moins fun ...


@Hackoo
Je vois que les grands esprits ce rencontrent. ^^
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11773
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: Automatiser le débogage

#7

Message par Tlem »

Plaçons la barre un petit peu plus haute ...
Voici une version du batch que retourne seulement les lignes avec erreur et/ou warning et qui détecte tout seul le dossier d'installation d'AutoIt. ^^

Du coup, les seules informations à modifier sont le chemin des fichiers à tester et éventuellement le chemin du fichier log si on le veux pas dans le dossier du batch.
Fichiers joints
Au3CheckFiles.bat
(1.44 Kio) Téléchargé 140 fois
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
mdanielm
Membre émérite
Membre émérite
Messages : 254
Enregistré le : mer. 11 déc. 2013 19:48
Status : Hors ligne

Re: Automatiser le débogage

#8

Message par mdanielm »

Le but du jeu n'est pas de se battre à coup de batchs mais de faire remonter les exemples qui plantent comme celui de la page:
_GDIPlus_ImageSaveToFile
bien qu'il n'y ait pas d'erreur de syntaxe.
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11773
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: Automatiser le débogage

#9

Message par Tlem »

Rien à voir avec une battle. Il est plus simple de visualiser les UDF en erreurs dans une liste qui retourne seulement les erreurs plutôt qu'une liste d'un millier de lignes ou l'extraction sera moins simple.

Si tu as détecté qu'un ou plusieurs scripts d'exemple ne fonctionnent pas, je t'invite à le signaler directement sur le bugtrac du site officiel, car si tu corrige dans ton coin, les modifications seront à renouveler à chaque mise à jour. ^^ De plus cela permettra d'aider encore plus la communauté. ;)
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
mdanielm
Membre émérite
Membre émérite
Messages : 254
Enregistré le : mer. 11 déc. 2013 19:48
Status : Hors ligne

Re: Automatiser le débogage

#10

Message par mdanielm »

Le problème c'est que j'en ai trouvé un par hasard mais je soupçonne qu'il y en a beaucoup d'autres.
Comment les lister?
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11773
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: Automatiser le débogage

#11

Message par Tlem »

Bonjour Daniel.
Égoïstement, je dirais : Laisse ces tests aux autres.

La finalisation correcte de la traduction du fichier d'aide me paraît déjà un travail conséquent sans se rajouter un travail supplémentaire.

La traduction et la correction des exemples me semble totalement inutile pour le moment car je suppute une actualisation prochaine d'une partie de ces fichiers par la team US (bien que je n'en ai aucune certitude). Maintenant si cela te permet de mieux dormir, alors fait comme tu le sent, mais comme il n'existe pas de solution de tests automatisés adaptée à la multitude d'exemples du fichier d'aide, il faut ce taper chaque test, un par un ... :D
Pour chaque exemple non fonctionnel, il faut créer un ticket sur le bugtrac afin que l'exemple soit corrigé pour la prochaine version majeure (qui arrivera peut être dans un ou deux ans).
Voilà, voilà. ^^

Envoyé de mon appareil mobile en utilisant Tapatalk

Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: Automatiser le débogage

#12

Message par mikell »

Hello
Si tu as constaté toutes ces erreurs depuis la sortie de la version 3.3.14.3 alors il est urgent d'attendre

Sur le site US cette version est mentionnée par Jon comme "Interim Release" . Certaines modifications effectuées dans les UDFs entrainent des problèmes à effet domino (fonctions modifiées => autres fonctions qui buggent, includes inadaptés, exemples qui marchent plus etc)
Personnellement je conseillerais très vivement de ne PAS installer cette version :mrgreen:

D'autant que comme l'a fort bien flairé Thierry avec sa grande expérience :bisou: , tout ça est activement en cours de traitement chez les développeurs, et il y a effectivement une 3.3.14.4 qui chauffe et dont la sortie ne devrait pas tarder :wink:
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: Automatiser le débogage

#13

Message par mikell »

Pour info : la 3.3.14.4 est en ligne
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Répondre