Page 1 sur 1

Automatiser le débogage

Posté : ven. 02 mars 2018 14:02
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.

Re: Automatiser le débogage

Posté : ven. 02 mars 2018 17:35
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.

Re: Automatiser le débogage

Posté : ven. 02 mars 2018 17:39
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é 129 fois

Re: Automatiser le débogage

Posté : ven. 02 mars 2018 21:09
par mdanielm
Bravo pour l'exercice de style, mais ça ne fait pas avancer le smilblik.

Re: Automatiser le débogage

Posté : ven. 02 mars 2018 21:17
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!

Re: Automatiser le débogage

Posté : ven. 02 mars 2018 21:32
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. ^^

Re: Automatiser le débogage

Posté : ven. 02 mars 2018 22:38
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.

Re: Automatiser le débogage

Posté : sam. 03 mars 2018 17:02
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.

Re: Automatiser le débogage

Posté : sam. 03 mars 2018 17:20
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é. ;)

Re: Automatiser le débogage

Posté : sam. 03 mars 2018 17:43
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?

Re: Automatiser le débogage

Posté : dim. 04 mars 2018 04:17
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


Re: Automatiser le débogage

Posté : dim. 04 mars 2018 10:01
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:

Re: Automatiser le débogage

Posté : ven. 09 mars 2018 22:43
par mikell
Pour info : la 3.3.14.4 est en ligne