Rails : nombre de lignes de code et de test

In: Rails

17 juin 2009

Je suis un peu genre obsédé par les statistiques de mes applications.
Du coup beaucoup d’entre elles ont des outils me permettant de générer des graphiques avec divers indicateurs d’évolution des données de celles-ci en fonction du temps.
Sur RefStats par exemple, ce graphique m’affiche l’évolution du nombre de positions; du nombre d’utilisateurs; de sites et le temps moyen d’exécution du robot pour chaque mot clé.

Par ailleurs vous connaissez probablement déjà la commande Rails rake stats qui fournit des données statistiques sur le code de votre application. Nombre de lignes de code; nombre de lignes de test; ratio, …
La classe calculant ceci est située dans les railties.
Malheureusement cette classe n’est pas vraiment abstraite. Elle affiche directement des données en console, c’est pas super cool pour les entrer en base de données.

Du coup j’ai repris cette classe pour la modifier et permettre de récupérer ces données de manière abstraite et ainsi pouvoir les utiliser dans mon application :)
Je vous présente donc Rails Code Statistics (oui j’ai toujours des super idées de noms de projets).

Le principe est archi simple.
Vous instanciez la classe :
stats = CodeSearch.new

Puis vous pouvez récupérer les données comme un hash :
p(stats.to_h)
Comme un élément json
p(stats.to_json

Uniquement les statistiques totales
p(stats.total)
Uniquement les statistiques détaillées
p(stats.statistics)

Et après en faire ce que vous voulez :)
Dans mon cas par exemple, j’ai une tache rake qui est exécutée automatiquement une fois par jour et qui me place le nombre de lignes de code et de tests.
Ainsi je n’ai plus qu’à traiter ces données pour faire un graphique d’évolution de mon application.

Note : la version ci-dessus ne fonctionnera que si vous avez vos tests faits avec RSpec.
Si vous utilisez Shoulda, je vous laisse vous débrouiller :mrgreen:
Et si vous utilisez Test::Unit, je vous invite à tester RSpec. Vous voudrez plus faire que de ça après :mrgreen:

Cet article est rédigé par Damien MATHIEU.
Et est disponible sous licence creative common by-nc-nd.
Si vous appréciez son contenu, n'hésitez pas à me recommander.

1 Response to Rails : nombre de lignes de code et de test

Avatar

Philippe

juin 18th, 2009 at 9:50

Yey! À tester tout ça… parce-que y’en avait marre du script zsh qui foreach/cat/echo/wc… ^_^ »

Ads

Comment Form

Photostream

    Before the concertBefore the concertI JumpI'm BackFrom the BackGoing DownNativity ChurchIn the streets of BethlehemNazareth by Morning
  • Damien: Je ne connais pas Bluepill. Je vais regarder ce que ça donne, merci. Quant à Resque, je connais [...]
  • Jérémy: J'ai eu l'occasion d'utiliser BluePill pour gérer les tâches (lourdes) de fond d'une application R [...]
  • Damien: Non et c'est normal. Pour fonctionner, Selenium exécute réellement le navigateur. Sans serveur X [...]
  • Rykian: Pas mal :3 Et ça marche sans interface graphique ça ? :o [...]
  • Damien: Pour ceux intéressés pour utiliser la librairie Selenium Ruby plus en profondeur (sans aucune conn [...]