Comment trouver le code Robot Framework non utilisé ?

Pour garder son projet de test bien propre đź§ą

Comment trouver le code Robot Framework non utilisé ?

J’ai récemment utilisé l’outil robotframework-find-unused dans un projet Robot Framework et j’ai trouvé les résultats plutôt pertinents. Cela m’a permis de découvrir des parties de code qui n’étaient plus utilisées, autrement appelé le “code mort” et ainsi de faciliter le “nettoyage” du projet de test.

L’outil renvoie quelques faux positifs mais j’ai cependant trouvé les résultats utiles.

Il permet notamment de trouver les éléments Robot Framework non-utilisés suivants :

  • les Keywords
  • les arguments de Keyword
  • le retour d’un Keyword
  • les variables globales
  • les fichiers

Intégrer à la CI

Une utilisation intéressante est d’intégrer cet outil à votre CI (Intégration Continue) afin de pouvoir systématiquement voir les éléments qui ne sont pas utilisés.

Je vous donne ici un exemple de ligne de commande à mettre dans votre job de CI qui permettra d’afficher le nombre de fois que des keywords sont appelés et ainsi détecter ceux qui ne le sont jamais ou très peu :

$ robotunused keywords --show-count ./test/

Les résultats dans le log permettront de se rendre compte des usages des keywords dans les tests :

Discovering files in `./test/` using Robocop config...
Parsing files with LibDoc...
[ DONE ] Parsed 14 files
Gathering custom keyword definitions...
[ DONE ] Found 11 custom keyword definitions
Gathering downloaded library keyword definitions...
Counting keyword usage...
[ DONE ] Processed 242 keyword calls

use_count       keyword_name
0       Reanalysis.Update Document And Check Input Data
0       Controls Manual.Start Manual Analysis
1       Controls.Check Control
1       Test.Global Suite Setup
1       Api.Post And Check Documentt
2       Checker.Load Doc Report
2       Should Be Almost Equal
3       Except.Field Value May Be Similar
3       Api.Add Header
5       Check Model Coverage
6       File Create And Check.My Suite Setup
8       Api.Get Document
8       Api.Login
10      Api.Return Id Document
10      Checker.Check Control Status Equal
18      Api.Post Document
24      Api.Check Document

On voit par exemple que deux Keywords ne sont jamais utilisés : Reanalysis.Update Document And Check Input Data et Controls Manual.Start Manual Analysis. Ils pourront donc être supprimés afin de conserver un code propre et de faciliter la maintenance.

On peut faire la mĂŞme chose pour les variables :

$ robotunused variables --show-count        
Discovering files in `.` using Robocop config...
Gathering variables definitions...
[ DONE ] Found 35 unique non-local variables definitions
Counting variable usage...
[ DONE ] Found 119 variable uses of gathered variables

use_count       variable
0       &{REF_CTRLS_0095}
0       &{REF_CTRLS_0900}
1       ${ENV_PASSWORD}
1       ${ENV_DEFAULT}
...
26      ${document}
26      ${images_ids}

Finalement un outil intéressant à intégrer à son projet Robot Framework pour garder son projet bien propre.

GitHub - Lakitna/robotframework-find-unused: Find unused parts of your Robot Framework project
Find unused parts of your Robot Framework project. Contribute to Lakitna/robotframework-find-unused development by creating an account on GitHub.