web-dev-qa-db-fra.com

Comment déboguer AppleScript?

Quels conseils et astuces avez-vous pour déboguer AppleScript? Y a-t-il un débogueur? Sinon, quelle est la meilleure façon d'insérer des "impressions" pour afficher la valeur des variables? Existe-t-il un moyen de "joliment imprimer" des structures de données plus compliquées?

45
Daryl Spitzer
  1. Débogueur de script
  2. XCode
  3. Obtenir les propriétés d'un objet (voir ci-dessous) pour comprendre pourquoi il échoue, lorsqu'il est exécuté à partir de l'éditeur de script. Vous pouvez également utiliser la classe Word pour voir de quelle classe est une propriété. Le dictionnaire pour une application est un bon point de départ.

    Une technique qui m'aurait souvent aidé (et que je fais encore parfois) consiste à dire quelque chose pour retourner leurs propriétés, comme ceci:

    tell application "TextEdit"
      get properties
    end tell
    
  4. Instructions de journal et Console.app, pour le débogage des événements d'exécution. (plus loin ci-dessous). Vous pouvez bien sûr activer et désactiver le débogage en définissant une propriété

    Vous trouverez ci-dessous une technique que j'utilise pour suivre les erreurs d'exécution, dans les applets, les règles de messagerie et ce que vous avez. En cas d'échec, le numéro et le message d'erreur sont enregistrés dans TestDrive.log et se trouvent dans la marge gauche de Console.app…

    tell application "TextEdit"
        try
            set a to text 0 of its name
        on error e number n
            my logit("OOPs: " & e & " " & n, "TestDrive")
        end try
    end tell
    
    to logit(log_string, log_file)
        do Shell script ¬
            "echo `date '+%Y-%m-%d %T: '`\"" & log_string & ¬
            "\" >> $HOME/Library/Logs/" & log_file & ".log"
    end logit
    
17
McUsr

Pour des besoins de débogage très simples de "style printf", essayez

display dialog "my variable: " & myVar
56
tuomassalo

Si vous créez n'importe quelle quantité d'AppleScripts, ScriptDebugger est le meilleur outil que je puisse recommander. Ayant dit cela...

Xcode est une option gratuite qui peut être utilisée pour développer des scripts Apple et peut parcourir le code avec le débogueur. La capacité est principalement incluse afin que vous puissiez créer des applications Cocoa avec AppleScript Studio , mais vous pouvez l'utiliser pour tout développement AppleScript.

Si vous cherchez quelque chose de plus simple, vous pouvez consulter Smile , qui n'est pas vraiment un débogueur, mais offre des fonctionnalités utiles pour le débogage qui ne sont pas disponibles dans l'éditeur de script standard.

9
Chuck

Si une boîte de dialogue d'affichage est trop petite, vous pouvez utiliser TextEdit pour afficher de gros retours:

tell application "TextEdit"
    activate
    make new document
    set text of document 1 to myResults
end tell

Source http://forums.macrumors.com/showthread.php?t=446171

6
Hex Bob-omb