Automatiser le débogage
Règles du forum
- Merci de consulter la section "Règles du forum" et plus particulièrement "Règles et Mentions Légales du site autoitscript.fr" avant d'écrire un message.
Automatiser le débogage
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.
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.
- Tlem
- Site Admin
- Messages : 11784
- Enregistré le : ven. 20 juil. 2007 21:00
- Localisation : Bordeaux
- Status : Hors ligne
Re: Automatiser le débogage
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.
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é 173 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é".
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é".
- Hackoo
- Niveau 4
- Messages : 52
- Enregistré le : ven. 03 févr. 2012 19:31
- Localisation : Tunisie
- Status : Hors ligne
Re: Automatiser le débogage
Salut
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

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

@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
::************************************************************
>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
::************************************************************
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
Le savoir est la seule matière qui s'accroît quand on la partage. Socrate
Re: Automatiser le débogage
Bravo pour l'exercice de style, mais ça ne fait pas avancer le smilblik.
- Hackoo
- Niveau 4
- Messages : 52
- Enregistré le : ven. 03 févr. 2012 19:31
- Localisation : Tunisie
- Status : Hors ligne
Re: Automatiser le débogage
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
Le savoir est la seule matière qui s'accroît quand on la partage. Socrate
- Tlem
- Site Admin
- Messages : 11784
- Enregistré le : ven. 20 juil. 2007 21:00
- Localisation : Bordeaux
- Status : Hors ligne
Re: Automatiser le débogage
Oui cela est possible avec l'outil batch donné.mdanielm a écrit :Je voudrais savoir quels sont ceux qui contiennent une erreur de syntaxe
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 :et si possible une erreur d'exécution.
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.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?
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é".
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é".
- Tlem
- Site Admin
- Messages : 11784
- Enregistré le : ven. 20 juil. 2007 21:00
- Localisation : Bordeaux
- Status : Hors ligne
Re: Automatiser le débogage
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.
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é 158 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é".
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é".
Re: Automatiser le débogage
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.
_GDIPlus_ImageSaveToFile
bien qu'il n'y ait pas d'erreur de syntaxe.
- Tlem
- Site Admin
- Messages : 11784
- Enregistré le : ven. 20 juil. 2007 21:00
- Localisation : Bordeaux
- Status : Hors ligne
Re: Automatiser le débogage
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é.
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é".
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é".
Re: Automatiser le débogage
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?
Comment les lister?
- Tlem
- Site Admin
- Messages : 11784
- Enregistré le : ven. 20 juil. 2007 21:00
- Localisation : Bordeaux
- Status : Hors ligne
Re: Automatiser le débogage
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 ...
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
É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 ...

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é".
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é".
- mikell
- Spammer !
- Messages : 6292
- Enregistré le : dim. 29 mai 2011 17:32
- Localisation : Deep Cévennes
- Status : Hors ligne
Re: Automatiser le débogage
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
D'autant que comme l'a fort bien flairé Thierry avec sa grande expérience
, 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 
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

D'autant que comme l'a fort bien flairé Thierry avec sa grande expérience


" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
- mikell
- Spammer !
- Messages : 6292
- Enregistré le : dim. 29 mai 2011 17:32
- Localisation : Deep Cévennes
- Status : Hors ligne
Re: Automatiser le débogage
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 )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )