Rspec 如何向Growl发送RubyMine通知?

Rspec 如何向Growl发送RubyMine通知?,rspec,rubymine,growl,spork,Rspec,Rubymine,Growl,Spork,我想知道如何让RubyMine的控制台向growl发送消息。具体地说,由于我通过RubyMine运行Rspec&Spork,所以我希望得到关于有多少测试通过和失败的咆哮通知 我通过Autotest和RedGreen gems使用了该功能的命令行版本,但这两个gem似乎都没有在RubyMine中保留其有用性 有人成功地从RubyMine推送了咆哮通知吗 有人能想到任何可以启用通知的工具或机制吗?您可以使用AppleScript触发rspec运行,然后在完成时调用咆哮 给出了一种将事件与咆哮挂钩的方

我想知道如何让RubyMine的控制台向growl发送消息。具体地说,由于我通过RubyMine运行Rspec&Spork,所以我希望得到关于有多少测试通过和失败的咆哮通知

我通过Autotest和RedGreen gems使用了该功能的命令行版本,但这两个gem似乎都没有在RubyMine中保留其有用性

有人成功地从RubyMine推送了咆哮通知吗


有人能想到任何可以启用通知的工具或机制吗?

您可以使用AppleScript触发rspec运行,然后在完成时调用咆哮

给出了一种将事件与咆哮挂钩的方法


这不是一个完整的答案,但它是一个合理的方法。

可能这段代码会对您有所帮助

    # -*- ruby -*-

   module Autotest::RedGreen
   Autotest.send(:alias_method, :real_ruby, :ruby)
   Autotest.send(:define_method, :ruby) do |*args|
   real_ruby + %[ -rrubygems -e "require 'redgreen'" ] 
end

   # Clean the output so other modules can work correctly
   Autotest.add_hook :ran_command do |at|
   at.results.each do |r|
   r.gsub!("\033[31m", "")
   r.gsub!("\033[32m", "")
   r.gsub!("\033[33m", "")
   r.gsub!("\033[0m", "")
  end
 end
end

module Autotest::Growl
AUTOTEST_IMAGE_ROOT = "~/.autotest_images"

def self.growl(title, msg, img, pri=0, sticky="")
 system "growlnotify -n autotest --image #{img} -p #{pri} -m '#{msg.inspect} #{title}'      #{sticky}"
end

  Autotest.add_hook :red do |at|
  growl("FAIL", "#{get_results(at)}", "#{AUTOTEST_IMAGE_ROOT}/fail.png", 2)
 end

  Autotest.add_hook :green do |at|
  growl("Pass", "#{get_results(at)}", "#{AUTOTEST_IMAGE_ROOT}/pass.png")
 end

 private
 def self.get_results(at)
 results = [at.results].flatten.join("\n")

  if results.include? 'tests'
  output = results.slice(/(\d+)\s+tests?,\s*(\d+)\s+assertions?,\s*(\d+)\s+failures?   (,\s*(\d+)\s+errors)?/)
 else
  output = results.slice(/(\d+)\s+examples?,\s*(\d+)\s+failures?(,\s*(\d+)\s+not implemented)?/)
   end
  output
 end
end

 # Esclusioni
 Autotest.add_hook :initialize do |at|
  %w{.hg .git .svn stories tmtags Rakefile Capfile README spec/spec.opts spec/rcov.opts vendor/gems autotest svn-commit .DS_Store }.each do |exception|
  at.add_exception(exception)
 end

    at.add_mapping(/spec\/defaults.rb/) do |f, _|
    at.files_matching %r%^spec/(controllers|helpers|lib|models|views)/.*\.rb$%
  end
 end

我不知道RubyMine的情况,但这应该在终端中完成:

rake db:setup && growlnotify -m 'Finished DB setup'

如果有人对此进行测试并验证它是否有效,请在此处发表评论,我会将此标记为已回答。我不再在RubyMine工作,无法核实。我正在与作者协调恢复原始回购协议。在这里放一些代码仍然是可取的——但在这种情况下,它很长,也许这个答案的任何版本都会包含很多内容。在这两种情况下,我的“ReP”一边,我不同意在这里发生的下意识的下注,而不是试图征求讨论,因为我不认为它是质量适度的,但是OBV YMMV。@ NeWalxDeRiRa我很高兴在你的编辑上退下投票。编辑完成后,在注释中标记我。系统不会让我现在就放弃投票。@LynnCrumbling我已经更新了链接(FWIW,现在很晚了)@NewAlexandria您上次编辑的内容中有关键字“tools”——对非现场资源的请求/建议将很快解决此问题。我要拔掉单词
工具