4 votes

Débogage des scripts chargés avec GroovyShell (dans eclipse)

Je travaille avec eclipse et le plug-in groovy. Je construis un harnais de test pour déboguer et tester les scripts groovy. Les scripts sont vraiment simples mais longs, la plupart d'entre eux juste if/else/return. J'ai compris que je pouvais les appeler en utilisant GroovyShell et Bindings pour passer les valeurs.

Le problème est que, alors que je peux appeler le script et obtenir les résultats sans problème, je NE PEUX PAS intervenir avec le débogueur. Les points d'arrêt dans ces script ne sont pas actifs.

Y a-t-il un moyen de déboguer les scripts ? Peut-être devrais-je utiliser autre chose que GroovyShell ? Je ne veux vraiment pas modifier les scripts en les enveloppant dans des fonctions, puis en appelant ces fonctions depuis mes classes de test.

C'est ainsi que j'utilise Binding et GroovyShell :

            def binding = new Binding();
            binding.lineList = [list1];
            binding.count = 5;

            def shell = new GroovyShell(binding);
            def result = shell.evaluate(new File("src/Rules/checkLimit.groovy"));

6voto

Andrew Eisenberg Points 12522

Je suppose que vos scripts ne sont pas sur le classpath de votre projet. Vous devez les ajouter au classpath et, de préférence, vous assurer que les déclarations de package sont correctes (ou vous assurer qu'ils sont dans le répertoire par défaut pour ce dossier source).

Vous pouvez également désigner ce dossier source comme un dossier script. Cela garantira que vos script ne seront pas compilés dans le dossier de sortie. Vous pouvez le faire par le biais de Preferences -> Groovy -> Compiler. Cochez la case pour activer les dossiers script, puis créez la regex pour spécifier le dossier. Vous pouvez également spécifier si les script doivent être copiés tels quels dans le dossier de sortie.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X