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 ||
.fixtures_dir = "spec/javascripts/fixtures"
.jasmine_url = "/jasmine"
.config_file = "spec/config.yml"
.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
= File.('../', ::::Source.bundled_path)
sprockets.append_path()
# add Handlebars to Jasmine too
jasmine_sprockets.append_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