2010-12-10 69 views
6

Donc j'ai eu beaucoup de problèmes dernièrement obtenir autotest pour travailler dans mon application rails3. Plutôt que de continuer à jouer avec ça dans l'espoir de pouvoir le faire fonctionner, j'ai commencé à chercher des alternatives. En ce moment, il semble que watchr est une excellente alternative. Mais je voulais demander, y at-il des avantages particuliers à l'utilisation de l'un sur l'autre? Le plus évident que je peux dire est que watchr prend un peu plus de temps à installer. Cependant, après cela, il semble "juste travailler". Donc le compromis me semble bien valoir, mais quels sont les autres avantages/inconvénients?watchr vs autotest pour les rails apps

De plus, je ne connais pas très bien le fonctionnement du spork ou son fonctionnement, mais peut-il être utilisé avec spork et me permettre de bénéficier de tests sur des rails beaucoup plus rapides?

Répondre

10

J'ai récemment eu un problème avec autotest, car il est méchant si vous n'utilisez pas la structure de fichier attendue. J'ai donc fait un essai et je suis très content.

Si vous voulez simplement exécuter vos tests automatiquement après le changement, les deux outils sont égaux. Autotest fonctionnera hors de la boîte dans un projet de rails, tandis que watchr a besoin d'un fichier de configuration pour fonctionner. Donc, il y a un peu de frais généraux pour watchr. Cependant, il existe plusieurs projets qui ont déjà configuré watchr pour se comporter comme autotest.

Dès que vous souhaitez utiliser une commande personnalisée à chaque fois qu'un fichier spécifique est modifié, watchr montre sa force. Par exemple, exécutez rake annotate chaque fois que schema.rb change ou génère des documents mis à jour chaque fois que des fichiers importants sont modifiés.

Un tel comportement est possible dans watchr via sa syntaxe de configuration simple: watch('regular expression') {|match_data| your_command match_data[0]}. Pour exécuter toutes les spécifications de couleur que vous appelez watchr config_file.rb, tandis que config_file.rb contient

watch ('spec/.*_spec\.rb') {|md| system "rspec -c spec/"} 

Depuis watchr semble fonctionner avec nestor (qui est similaire à Spork), il devrait être possible d'intégrer Spork aussi bien. En résumé: watchr est beaucoup plus flexible que l'autotest, mais a besoin d'une configuration pour commencer. watchr devrait être capable de bien travailler avec spork.