Comment trouver le code Robot Framework non utilisé ?
Pour garder son projet de test bien propre đź§ą
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.