gpt4 book ai didi

rspec - 如何向 Growl 发送 RubyMine 通知?

转载 作者:行者123 更新时间:2023-12-03 06:15:21 25 4
gpt4 key购买 nike

我正在尝试弄清楚如何让 RubyMine 的控制台向 growl 发送消息。具体来说,由于我通过 RubyMine 运行 Rspec 和 Spork,因此我希望获得有关通过和失败的测试数量的 Growl 通知。

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

有人成功从 RubyMine 推送 Growl 通知吗?

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

最佳答案

也许这段代码会对你有所帮助

    # -*- 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

关于rspec - 如何向 Growl 发送 RubyMine 通知?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5654438/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com