2011-08-21 3 views
5

Je me demandais si je pouvais exécuter mes tests sous la console rails plutôt que sur la ligne de commande. En fait, la logique est que le test de rake: les unités sur la ligne de commande prennent beaucoup de temps pour charger l'environnement des rails. J'ai donc pensé, pourquoi ne pas démarrer une console pour charger l'environnement une fois et ensuite continuer à courir l'unité de râteau: tests chaque fois que je voulais vérifier mon code. Après tout, les rails sont conçus pour être agiles et favoriser le développement agile. Alors j'ai essayé ça. tout ce que j'avais d'abord dire:Rails console et rake test: unités

require « Rake »

mais même après avoir fait que je reçu le message d'erreur:

irb(main):002:0> Rake::Task['test.units'].invoke 
RuntimeError: Don't know how to build task 'test.units' 

Je suppose que je dois dire en quelque sorte là où regarder. Des pensées?

Merci

Chris

Répondre

5
ruby-1.9.2-p290 :001 > require 'rake' 
ruby-1.9.2-p290 :002 > r = Rake.application 
ruby-1.9.2-p290 :003 > r.init 
ruby-1.9.2-p290 :004 > r.load_rakefile 
ruby-1.9.2-p290 :005 > r['test:units'].invoke 
+1

Merci, cela a fonctionné la première fois (mais en fait, il a fallu encore beaucoup de temps pour s'exécuter) et ensuite retourné zéro quand j'ai essayé de lancer r ['test: units']. Je pense que je vais regarder Spork. – Chris

+1

En fait, ajouter r.clear me permet de répéter r.load_rakefile et r ['test: units']. Le temps d'exécution sur mon ordinateur a été réduit de 80 secondes (râteau sur la ligne de commande) à 25 secondes, et donc une amélioration substantielle, bien que toujours assez lente. – Chris

0

Une meilleure idée est d'utiliser Spork pour garder l'environnement chargé et puis Autotest pour exécuter des tests automatiquement lorsque les fichiers changent.

+0

Oui, je pense que c'est la voie à suivre. Cependant, j'utilise RoR dans un petit module uni et je ne voulais pas avoir à parler de rspec et d'autres choses non couvertes par le livre Agile Software Development with Rails. Je me demande si le paquet de rails de noyau devrait passer à spork etc. Il semble un peu étrange qu'il inclut toujours la technologie d'essai qui est trop lente pour TDD. – Chris

Questions connexes