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
2025
2026
 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