Domanda

Ho un app rotaie che sta combinando asset JavaScript utilizzando Jammit , e mi piacerebbe utilizzare Jasmine per la prova in stile BDD della mia javascript. Mi chiedo se qualcuno ha qualche consiglio su come accedere alle '' pacakges Jammit-generati dall'interno di Jasmine?

Il problema è che Jasmine è configurato definendo un elenco di file JS su disco per prova, e comprende quindi i file all'interno della sua pagina di corridore proprio test che viene caricato ed eseguito in un browser.

ho potuto riferire ciascuno dei singoli file JS all'interno del file di configurazione jasmine.yml prima di essere confezionati con Jammit ... tuttavia, Jammit sta già trattando con le dipendenze tra i file per me, e, cosa più importante, ho anche necessitano di un accesso alla compilato javascript modelli che Jammit produce.

ho potuto anche eseguire manualmente Jammit per generare le risorse compilati prima e quindi eseguire Jasmine, ma mi piacerebbe finire dover ri-generare i beni a mano prima di ogni test eseguito al fine di testare le modifiche, che avrebbe seriamente crampo un veloce test-driven tipo flusso di lavoro.

Mi chiedo se potessi in qualche modo:

  • Montare il controllore Jammit dall'interno server rack di Jasmine in modo che possa servire i pacchetti da Jasmine? Ciò in pratica funzionerà allo stesso modo di Jammit fa già da dentro env sviluppo Rails.
  • Hook in Jasmine in qualche modo di confezionare i beni su ogni caricamento della pagina prima che vengano eseguiti i test? Questo sarebbe più lento, ma mi farebbe risparmiare un passo e garantire le cose sono state aggiornate.

Qualche suggerimento? Sto appena iniziato con questo, quindi potrebbe essere in corso su di esso tutto sbagliato. Qualsiasi consiglio sarebbe molto apprezzato. :-)

Grazie! -John

È stato utile?

Soluzione

Ecco la combinazione magica che stai cercando:

  1. Utilizza il guardia gioiello insieme al guard-jammit gioiello da guardare per modifiche alle risorse del vostro progetto
  2. LiveReload plug nel browser di vostra scelta e installare il guard-livereload gioiello in modo da poter avere il vostro aggiornare il browser automatica ogni volta che le caratteristiche del tuo o beni cambiamento.
  3. Fuoco fino guardia, poi rastrello gelsomino, quindi caricare le caratteristiche del tuo gelsomino nel browser, quindi premere il pulsante live-reload per la connessione al server di vivere-reload quella guardia ha iniziato
  4. Modificare i file. Guarda la magia accade come piste di guardia jammit e istruisce il browser per aggiornare le specifiche gelsomino.

Ecco un esempio Guardfile per iniziare:

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

Altri suggerimenti

I è venuta in mente una soluzione OK: forza Jammit per ricaricare e pacchetto quando il gelsomino comincia. Per fare questo, è necessario modificare il file jasmine_config.rb:

require 'jammit'
module Jasmine
  class Config

    Jammit.reload!
    Jammit.package!

   end
end

ho scritto dopo un po 'più dettagliato su di esso qui: http: //www.rebeccamiller-webster.com/2011/05/jammit-jasmine-bdd/

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top