Gem Version Dependency Status Build Status Code Climate Coverage Status

Logo by Morgan Keys Logo by Morgan Keys

Guard-Teaspoon allows you to run Teaspoon using Guard.

Teaspoon is a Javascript test runner built for Rails. It runs test in the browser or headless using PhantomJS or Selenium WebDriver. We recommend you check out the installation steps for Teaspoon, and read about the configuration.

With Guard-Teaspoon you can start up Guard, make changes to your tests or implementation files, and the specs will be run automatically using Teaspoon. It behaves very similarly to guard-rspec.

This project is still experimental, but is being worked on.

Developer Notice

The version of guard-teaspoon will be bumped up to 0.8 to match what is current in teaspoon. The versions will stay in sync (at least in terms of a minor version) from now on so that it's clear which versions work together well.

Table of Contents

  1. Installation
  2. Usage
  3. Configuring Guard


Add it to your Gemfile. Like Teaspoon, in most cases you'll want to restrict it to the :development, :test groups.

group :development, :test do
  gem "teaspoon"
  gem "guard-teaspoon"

Install Teaspoon using the install generator.

rails generate teaspoon:install

Generate the Guardfile that includes the standard Guard-Teaspoon template.

bundle exec guard init teaspoon


Start Guard.

bundle exec guard start

Make changes to your javascript specs or implementation files and the appropriate tests will run.

Configuring Guard

In general this isn't very complicated, but if you have multiple suites setup in Teaspoon this can get a little complicated -- there's an expectation that you understand what you're doing in regards to using Guard.

The default Guardfile will watch for any file changes within your app/assets/javascripts path and will attempt to resolve those file to a spec. If you're using QUnit, you can change this to be _test instead of _spec, or use or coffee for file extensions, and you can use a more advanced regexp for other needs.


guard :teaspoon do
  watch(%r{^app/assets/javascripts/(.+).js}) { |m| "#{m[1]}_spec" }

Specifying Teaspoon Environment

Guard-Teaspoon takes several options, but worth calling out is the environment option. This option allows you to tell Teaspoon where it should look for it's environment file, and is useful if Teaspoon is unable to resolve it's environment.


guard :teaspoon, environment: "spec/dummy/spec/teaspoon_env.rb" do

Available Options

...document when this is better hammered out...


Licensed under the MIT License

Copyright 2014 Mode Set

Make Code Not War