Use Guard with jasmine-headless-webkit
Go to file
John Bintz 10974db664 use runner instead of calling from shell 2011-06-16 10:13:15 -04:00
lib/guard use runner instead of calling from shell 2011-06-16 10:13:15 -04:00
spec support for jhw's duck-punch-sprockets branch, run rails asset compilation before running jhw 2011-06-12 13:44:10 -04:00
.gitignore initial commit 2011-05-23 18:37:19 -04:00
Gemfile support for faster filtered spec running in JHW 0.3.0 2011-06-10 11:33:27 -04:00
Guardfile support for faster filtered spec running in JHW 0.3.0 2011-06-10 11:33:27 -04:00
README.md deprecate guard-jammit 2011-06-15 17:07:50 -04:00
Rakefile more changes and testing stuff 2011-06-06 09:49:37 -04:00
guard-jasmine-headless-webkit.gemspec support for faster filtered spec running in JHW 0.3.0 2011-06-10 11:33:27 -04:00

README.md

Guard support for jasmine-headless-webkit

Add running your Jasmine specs to your Guardfile via jasmine-headless-webkit. Nice!

guard 'jasmine-headless-webkit' do
  watch(%r{^app/assets/javascripts/(.*)\..*}) { |m| newest_js_file("spec/javascripts/#{m[1]}_spec") }
end

gem install guard-jasmine-headless-webkit and then guard init jasmine-headless-webkit in your project directory to get started. You should also put it in your Gemfile because, hey, why not, right?

Output is colored by default. If you want it not colored, place a --no-colors option into the project's or your home folder's .jasmine-headless-webkit file.

guard options

  • :all_on_start => false to not run everything when starting, just like guard-rspec.
  • :rails_assets => true to repackage Rails assets before each run.
  • :run_before => "<command to run>" to run a command before running specs. If the command fails, the test run stops.
  • :valid_extensions => %w{js coffee} to only trigger run_on_change events for files with these extensions. Forces Guard to re-run all tests when any other matched file changes.

Deprecated options

  • :jammit => true to run jammit -f 2>/dev/null before the tests for the current file change are run.

What's the deal with newest_js_file?

Since one could, theoretically, have a CoffeeScript app file and a JavaScript spec file (or vice versa), the search for the correct matching file is a little more complicated. newest_js_file extends the Guard DSL to search the given path for the newest .js or .coffee file:

newest_js_file('spec/javascripts/models/my_model')
  #=> search for Dir['spec/javascripts/models/my_model*.{js,coffee}'] and return the newest file found

If you 100% know you won't need that support, modify your Guardfile as appropriate.

I use Backbone.js a lot, and I put my Underscore view templates in app/views/*.jst and mash them all together with Jammit for use in my apps. Feel free to change that, it's your Guardfile after all. Or, try it. It's easy to do in your assets.yml file:

templates:
- app/views/*.jst