Tests automatiques avec autotest

NOTE: Cet article tire son origine d’un courriel (en 2009) envoyé aux développeurs de l’Agence Phéromone, pour les informer de la possibilité de rouler des tests de manière constante.

Donc, ma découverte de la fin de semaine dernière est relié à ma paresse de faire les choses. Rouler des tests peut être long (et plate) et pour me donner du courage, j’ai besoin que les choses se fassent de manière automatique. Roulement de tambour… Voici Autotest! Ce gem pour le moins sympathique fait partie de la suite de test ZenTest. Autotest comme son nom l’indique, permet de rouler les tests en temps réel, sans avoir besoin de rouler la commande chaque fois dans le terminal. Autotest détecte automatiquement les changements appliquer aux fichiers et roule les tests qui ont été modifiés. Je crois savoir avec la petite expérience du week-end qu’Autotest ne roule que les tests unitaires. Par contre, il est possible de le configurer avec Cucumber, RSpec, shoulda et auttre gem permettant de faire d’autres type de tests.

Je joins au courriel des images vous permettant de voir les différents aides visuels que l’utilisation d’autotests apporte.

Je crois savoir que les gems suivants vont fonctionner sur toutes les plateformes linux/unix, Pour windows, ben y serait temps que vous changiez parce qu’on fait pas de .NET chez Phéromone et qu’il existe de très bons outils sur les autres OS et vous le savez. :P

*Installation:*
sudo gem install ZenTest autotest-growl autotest-rails redgreen

Ce gem ne fonctionne que sous OS X 10.5 je l’ai tester sur 10.6 et ce n’était pas concluant. => autotest-fsevent

*Configuration de autotest*
Dans le home directory il est possible de mettre un fichier de configuration appeler .autotest contenant les dépendances d’autotest.
Voici la configuration que j’utilise:

# ruby config for autotest gem

require ‘autotest/growl’ # si vous n’utilisez pas Growl commenter le il existe d’autre alternative.
require ‘redgreen/autotest’ # colore le résultats des tests.
# require ‘autotest/fsevent’ # not working on 10.6 for now
require ‘autotest/restart’
require ‘autotest/timestamp’
# require ‘autotest/rcov’ # à tester

# on peut même configurer Rcov :)
# Autotest::AutoUpdate.sleep_time = o
# Autotest::AutoUpdate.update_cmd = o
# Autotest::RCov.command = o
# Autotest::RCov.pattern = o

#ne lit pas ces fichiers.
Autotest.add_hook :initialize do |autotest|
%w{.git .svn .hg .DS_Store ._* vendor}.each { |exception| autotest.add_exception(exception) }
false
end

Référence: http://ph7spot.com/musings/getting-started-with-autotest

Bookmark and Share

About djee

Web Developper, Ruby On Rails Apple geek!
This entry was posted in Dev, Rails, travail and tagged , , . Bookmark the permalink.

Leave a Reply

Your email address will not be published. Required fields are marked *

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>