Middleman::Jasmine
This gem adds the Jasmine runner into a middleman app under the /jasmine
path.
It has (optional) support for Sprockets.
It uses Jasmine 2.0. For Jasmine 1.3 support use the jasmine_1_3 branch.
Installation
Add this line to your application's Gemfile:
gem 'middleman-jasmine'
And then execute:
$ bundle
Usage
First run bundle exec jasmine init
to setup Jasmine.
Then, if you have Sprockets installed through middleman-sprockets, you can create a spec.js
file in spec/javascripts/
to include all your specs, i.e.
//= require application
//= require_tree .
Add the following code to your config.rb
file:
activate :jasmine
Write a spec file under spec/javascripts/
and hit /jasmine
under your Middleman app, e.g. http://localhost:4567/jasmine
.
You should see the results of the spec pass/fail under Jasmine.
Rake
You can also run the Jasmine-tests using PhantomJS with Rake:
Add the following to the Rakefile
generated from bundle exec jasmine init
:
require 'middleman'
require 'middleman-jasmine'
require 'middleman/jasmine/tasks'
Then use:
rake middleman_jasmine:ci
Configuration
To configure the extension, use:
activate :jasmine do |options|
options.fixtures_dir = "spec/javascripts/fixtures"
options.jasmine_url = "/jasmine"
options.config_file = "spec/config.yml"
options.debug_assets = false
end
NOTE: debug_assets
can be used to extract any assets included in the spec files and serve them with ?body=t
to avoid Sprockets compiling them every time a spec re-runs.
Caveats
If you add additional paths to Sprockets with append_path
in your after_configuration
block then you'll most likely need to append the same paths to the Middleman::Jasmine
Sprockets instance. To do that use the helper jasmine_sprockets
, i.e.:
after_configuration do
handlebars_path = File.expand_path('../', ::Handlebars::Source.bundled_path)
sprockets.append_path(handlebars_path)
# add Handlebars to Jasmine too
jasmine_sprockets.append_path(handlebars_path)
end
Contributing
- Fork it
- Create your feature branch (
git checkout -b my-new-feature
) - Commit your changes (
git commit -am 'Add some feature'
) - Push to the branch (
git push origin my-new-feature
) - Create new Pull Request