Skip to content

Instantly share code, notes, and snippets.

@kurbmedia
Created January 13, 2011 06:35
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save kurbmedia/777496 to your computer and use it in GitHub Desktop.
Save kurbmedia/777496 to your computer and use it in GitHub Desktop.
Rspec spec_helper to add growl support internally
# This file is copied to spec/ when you run 'rails generate rspec:install'
ENV["RAILS_ENV"] ||= 'test'
require File.expand_path("../../config/environment", __FILE__)
require 'rspec/rails'
# Requires supporting ruby files with custom matchers and macros, etc,
# in spec/support/ and its subdirectories.
Dir[Rails.root.join("spec/support/**/*.rb")].each {|f| require f}
RSpec.configure do |config|
# == Mock Framework
#
# If you prefer to use mocha, flexmock or RR, uncomment the appropriate line:
#
# config.mock_with :mocha
# config.mock_with :flexmock
# config.mock_with :rr
config.mock_with :rspec
# Remove this line if you're not using ActiveRecord or ActiveRecord fixtures
#config.fixture_path = "#{::Rails.root}/spec/fixtures"
# If you're not using ActiveRecord, or you'd prefer not to run each of your
# examples within a transaction, remove the following line or assign false
# instead of true.
config.use_transactional_fixtures = true
config.after(:suite) do
growl(config.reporter)
end
end
def growl(reporter)
examples = reporter.instance_variable_get(:@example_count)
failures = reporter.instance_variable_get(:@failure_count)
pendings = reporter.instance_variable_get(:@pending_count)
duration = reporter.instance_variable_get(:@duration)
title = "APPNAME: Test Results"
image = (failures.to_i == 0) ? "~/.watchr_images/passed.png" : "~/.watchr_images/failed.png"
message = "#{examples} examples, #{failures} failures, #{pendings} pending"
growlnotify = `which growlnotify`.chomp
options = "-w -n RSpec --image '#{File.expand_path(image)}' -m '#{message}' '#{title}'"
system %(#{growlnotify} #{options} &)
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment