No commit activity in last 3 years
No release in over 3 years
Jasmine testing framework support for Middleman
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies

Development

~> 1.3
>= 0

Runtime

~> 2.0.0
~> 3.3.2
 Project Readme

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

  1. Fork it
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create new Pull Request