The Jasmine Gem

The Jasmine Ruby Gem is a package of helper code for developing Jasmine projects for Ruby-based web projects (Rails, Sinatra, etc.) or for JavaScript projects where Ruby is a welcome partner. It serves up a project's Jasmine suite in a browser so you can focus on your code instead of manually editing script tags in the Jasmine runner HTML file.

Contents

This gem contains:

  • A small server that builds and executes a Jasmine suite for a project
  • A script that sets up a project to use the Jasmine gem's server
  • Generators for Ruby on Rails projects (Rails 2 and Rails 3)

You can get all of this by: gem install jasmine or by adding Jasmine to your Gemfile.

Init A Project

To initialize a project for Jasmine, it depends on your web framework

For Rails2 support, use

script/generate jasmine

For Rails3 support, use

rails g jasmine:install rails g jasmine:examples

For any other project (Sinatra, Merb, or something we don't yet know about) use

jasmine init

Usage

Start the Jasmine server:

rake jasmine

Point your browser to localhost:8888. The suite will run every time this page is re-loaded.

Start Jasmine on a different port:

rake jasmine JASMINE_PORT=1337

Point your browser to localhost:1337.

For Continuous Integration environments, add this task to the project build steps:

rake jasmine:ci

This uses Selenium to launch a browser and run the Jasmine suite. Then it uses RSpec to extract the results from the Jasmine reporter and write them to your build log. The browser used by selenium can be changed by setting the JASMINE_BROWSER environment variable (this might require additional webdriver dependencies).

Configuration

Customize spec/javascripts/support/jasmine.yml to enumerate the source files, stylesheets, and spec files you would like the Jasmine runner to include. You may use dir glob strings.

Note about the CI task and RSpec

This gem requires RSpec for the jasmine:ci rake task to work. But this gem does not explicitly depend on any version of the RSpec gem.

If you're writing a Rails application then as long as you've installed RSpec before you install Jasmine and attempt a rake jasmine:ci, then you will be fine.

If you're using another Ruby framework, or don't care about Ruby, then run

gem install rspec

before you attempt the CI task.

Support

Jasmine Mailing list: [email protected] Twitter: @jasminebdd

Please file issues here at Github

Copyright (c) 2008-2010 Pivotal Labs. This software is licensed under the MIT License.