Question

J'ai une application de rails qui combine les actifs javascript en utilisant Jammit , et je voudrais utiliser Jasmine pour les tests de style BDD de mon javascript. Je me demande si quelqu'un a des conseils sur l'accès aux Jammit générés « pacakges » à partir de Jasmine?

Le problème est que Jasmine est configuré en définissant une liste de fichiers JS sur le disque à tester, et il comprend alors ces fichiers dans sa propre page de coureur de test qui est chargé et exécuté dans un navigateur.

Je pourrais faire référence à chacun des fichiers JS individuels à l'intérieur du fichier de configuration jasmine.yml avant qu'ils ne soient emballés avec Jammit ... Cependant, Jammit traite déjà des dépendances entre les fichiers pour moi, et, plus important encore, j'ai aussi doivent avoir accès au compilé javascript modèles Jammit produit.

Je pourrais aussi exécuter manuellement Jammit pour générer les actifs compilés, puis exécutez Jasmine, mais je voudrais liquider avoir à re-générer les actifs à la main avant chaque essai afin de tester les changements, ce qui serait un sérieux crampe flux de travail de type piloté par les tests rapides.

Je me demande si je pouvais en quelque sorte:

  • Monter le contrôleur Jammit à l'intérieur du serveur rack de Jasmine afin qu'il puisse servir les paquets de Jasmine? Cela en fait fonctionner de la même manière que Jammit fait déjà à l'intérieur env de développement de Rails.
  • Accrocher Jasmine en quelque sorte à conditionner les actifs à chaque chargement de la page avant que les tests sont exécutés? Ce serait plus lent, mais me sauverait une étape et assurer que les choses étaient à jour.

Toutes les suggestions? Je viens juste de commencer avec cela, pour que je puisse y aller à ce sujet tout faux. Tout avis serait grandement apprécié. :-)

Merci! -John

Était-ce utile?

La solution

Voici le combo magique que vous cherchez:

  1. Utilisez la pierre précieuse garde avec petit bijou garde-Jammit pour surveiller les modifications apportées aux actifs de votre projet
  2. Installer le LiveReload plug-in dans le navigateur de votre choix et installez le petit bijou garde-livereload afin que vous puissiez avoir votre recharge automatique du navigateur chaque fois que le changement de vos specs ou actifs.
  3. Le feu jusqu'à la garde, puis jasmin râteau, puis chargez vos spécifications de jasmin dans votre navigateur, puis appuyez sur le bouton en direct-reload pour se connecter au serveur live-reload que la garde a commencé
  4. Modifier vos fichiers. Regardez la magie se que des pistes de garde Jammit et charge votre navigateur pour rafraîchir les spécifications de jasmin.

Voici un exemple Guardfile pour vous lancer:

guard 'jammit' do
  watch(%r{public/javascripts/(.*)\.js})
  watch(%r{app/views/jst/(.*)\.jst})
  watch(%r{public/stylesheets/(.*)\.css})
end

guard 'livereload', :apply_js_live => false do
  watch(%r{app/.+\.(erb|haml)})
  watch(%r{app/helpers/.+\.rb})
  watch(%r{public/.+\.(css|js|html)})
  watch(%r{config/locales/.+\.yml})
  watch(%r{spec/javascripts/.+\.js})
end

Autres conseils

Je suis venu avec une solution OK: la force Jammit pour recharger et paquet quand le jasmin commence. Pour ce faire, vous devez modifier le fichier jasmine_config.rb:

require 'jammit'
module Jasmine
  class Config

    Jammit.reload!
    Jammit.package!

   end
end

J'ai écrit un peu plus détaillé après à ce sujet ici: http: //www.rebeccamiller-webster.com/2011/05/jammit-jasmine-bdd/

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top