0

Test::Unit を使用するテスト スイートを含む Rails プロジェクトがあります。Guard と Spork をセットアップして、テストを自動的に実行し、合格/不合格で通知を送信しようとしています。Guard と Spork は正常に動作しており、起動時に通知を送信しますが、テスト通知が機能しません。terminal-notifier-guard を使用して、Growl と Mac OS X の両方の通知を使用してみました。

私のGemfileの関連部分は次のとおりです。

group :test do
  gem 'sqlite3'
  gem 'selenium-webdriver'
  gem 'rr', :require => false
  gem 'capybara'
  gem 'database_cleaner'
  gem 'timecop'
end

group :test, :development do
  gem 'guard'
  gem 'spork'
  gem 'spork-testunit'
  gem 'guard-test'
  gem 'guard-rake'
  gem 'guard-spork'
  gem 'terminal-notifier-guard', :require => false
  gem 'rb-inotify', require: false
  gem 'rb-fsevent', require: false
  gem 'rb-fchange', require: false
end

そして test_helper.rb:

# -*- encoding : utf-8 -*-
require 'rubygems'
require File.expand_path('../../config/environment', __FILE__)
require 'rails/test_help'
require 'spork'

Spork.prefork do
  require 'rubygems'
  ENV["RAILS_ENV"] = "test"
  require 'capybara/rails'
  require 'database_cleaner'
  require 'rr'
  require 'ostruct'
  require "#{Rails.root}/test/test_support"

  class ActionController::TestCase
    include Devise::TestHelpers
    def teardown
      super
      Timecop.return
    end
  end

  class ActionDispatch::IntegrationTest
    self.use_transactional_fixtures = false
    include Capybara::DSL
    Capybara.default_driver = :selenium
    DatabaseCleaner.strategy = :truncation

    def setup
      super
      DatabaseCleaner.clean
    end

    def teardown
      super
      DatabaseCleaner.clean
      Timecop.return
    end

    def login_admin(admin=nil)
      admin = Admin.create!(:email => "super_badass@wickedawesome.com", :password => "sloppy") if !admin
      visit "/admins/sign_in"
      fill_in "admin_email", :with => admin.email
      fill_in "admin_password", :with => admin.password
      click_on "log in"
      admin
    end
  end
end

Spork.each_run do
  # This code will be run each time you run your specs.

end

私は途方に暮れています。どんな助けでも大歓迎です。

4

2 に答える 2

0

私はこの同じ問題と何ヶ月も戦ってきましたが、今朝修正しました。以前gem growlは他の回答で提案されているように試していましたが、今朝、ドキュメントruby_gntpで、最初に試しgrowlてから問題が発生した場合に使用することを提案していることがわかりました。

使用する Gemfile を変更しますgem ruby_gntp

Growl v.>=1.3 であることを確認してください

次の行を Guardfile の先頭に追加します。

notification :gntp, :sticky => true, :host => '127.0.0.1'

すべてがカチッとはまりました。インストールしただけでなく、自分のマシンで Growl がアクティブになっていることも確認する必要がありました。私は個人的に App Store から v.2.0.1 を持っているので、起動時に起動するだけです。お役に立てれば!

于 2013-07-06T20:02:18.723 に答える