guard-jasmine-headless-webkit/README.md

67 lines
3.1 KiB
Markdown
Raw Normal View History

2011-05-24 10:31:16 +00:00
# Guard support for jasmine-headless-webkit
2011-05-24 10:22:01 +00:00
Add running your Jasmine specs to your `Guardfile` via [`jasmine-headless-webkit`](http://github.com/johnbintz/jasmine-headless-webkit/). Nice!
2011-05-24 01:29:56 +00:00
guard 'jasmine-headless-webkit' do
2011-05-24 10:37:49 +00:00
watch(%r{^app/assets/javascripts/(.*)\..*}) { |m| newest_js_file("spec/javascripts/#{m[1]}_spec") }
2011-05-24 01:29:56 +00:00
end
2011-05-24 10:30:57 +00:00
`gem install guard-jasmine-headless-webkit` and then `guard init jasmine-headless-webkit` in your project directory to get started.
2011-05-24 10:43:39 +00:00
You should also put it in your `Gemfile` because, hey, why not, right?
2011-05-24 10:30:57 +00:00
2011-05-25 11:07:41 +00:00
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.
2011-05-24 10:22:01 +00:00
## `guard` options
* `:all_on_start => false` to not run everything when starting, just like `guard-rspec`.
2011-06-15 21:07:50 +00:00
* `:run_before => "<command to run>"` to run a command before running specs. If the command fails, the test run stops.
2011-06-07 13:00:05 +00:00
* `: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.
2011-05-24 10:22:01 +00:00
2011-06-15 21:07:50 +00:00
### Deprecated options
* `:jammit => true` to run `jammit -f 2>/dev/null` before the tests for the current file change are run.
2011-06-18 16:52:27 +00:00
* Use [`guard-jammit`](http://github.com/guard/guard-jammit) instead.
2011-06-18 16:15:12 +00:00
* `:rails_assets => true` to repackage Rails assets before each run.
2011-06-18 16:52:27 +00:00
* Use [`guard-rails-assets`](http://github.com/dnagir/guard-rails-assets) instead.
2011-06-18 16:15:12 +00:00
## Using with Rails 3.1 and the Asset Pipeline and/or Jammit
Use [`guard-rails-assets`](https://github.com/dnagir/guard-rails-assets) chained in before `guard-jasmine-headless-webkit` to precompile your application
code for testing:
guard 'rails-assets' do
watch(%r{^app/assets/javascripts/.*})
end
guard 'jasmine-headless-webkit' do
watch(%r{^public/assets/.*\.js})
... specs ...
end
Do the same for Jammit, using [`guard-jammit`](http://github.com/guard/guard-jammit).
### `guard-jammit` and Jammit >= 0.6.0
Jammit >= 0.6.0 changed how it determines the Rails environment. Use [my fork of `guard-jammit`](http://github.com/johnbintz/guard-jammit) until it's fixed upstream.
2011-06-15 21:07:50 +00:00
2011-05-24 10:22:01 +00:00
## 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
2011-05-24 01:29:56 +00:00
2011-05-24 10:22:01 +00:00
If you 100% know you won't need that support, modify your `Guardfile` as appropriate.
2011-05-24 01:29:56 +00:00
2011-05-24 10:30:57 +00:00
## ...and the `.jst` file search?
2011-05-24 10:44:17 +00:00
I use [Backbone.js](http://documentcloud.github.com/backbone/) a lot, and I put my Underscore view templates in `app/views/*.jst`
2011-05-24 10:43:45 +00:00
and mash them all together with [Jammit](https://github.com/documentcloud/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
2011-05-24 10:30:57 +00:00