【问题标题】:Customize Minitest output to growl自定义 Minitest 输出以咆哮
【发布时间】:2021-04-09 20:06:09
【问题描述】:

在我正在使用的 Rails 应用程序中:

  • 守卫
  • 保护小测试
  • 咆哮

当测试在后台运行时:

我从 Growl 那里得到这个:

很高兴知道至少有一项测试失败了。有什么方法可以添加报告数字的摘要,即 2 次失败等?

【问题讨论】:

    标签: ruby-on-rails minitest guard growl


    【解决方案1】:

    你可以通过修改Guard::Minitest::Notifier.notify来改变行为:

    require 'guard/compat/plugin'
    
    module Guard
      class Minitest < Plugin
        class Notifier
          # ...
          def self.notify(test_count, assertion_count, failure_count, error_count, skip_count, duration)
            message = guard_message(test_count, assertion_count, failure_count, error_count, skip_count, duration)
            image   = guard_image(failure_count + error_count, skip_count)
    
            # title: was just 'Minitest results'
            Compat::UI.notify(message, title: message, image: image)
          end
        end
      end
    end
    

    标题“Minitest results”很可能只是一个封闭的占位符。此示例将其设置为与您在 CLI 中获得的输出相同,但您可以在此处真正做任何您想做的事情。

    您最好通过 fork gem 并将 gemfile 设置为从 fork 中提取来执行此操作。

    gem 'minitest-guard', github: 'yourusername/minitest-guard'
    

    【讨论】:

    • 我正在关注这个但不清楚。我将此作为模块添加到 /lib?我认为现在本地补丁比分叉更容易。仍然不清楚Running: test/controllers/api_controller_test.rb 是如何传递给 Growl 的。这是测试触发时的第一个输出。
    • 如果您正在对其进行猴子补丁,您需要确保在加载测试套件时在正确的位置需要您的猴子补丁,这实际上与分叉它一样多是 PITA。如果您不想要公共分叉,您也可以将 gemfile 设置为从本地路径中提取。 rossta.net/blog/…
    • 越挖越觉得不值得。 Growl 已经退役,当测试失败时,我通常会寻找输出。会接受答案 - 谢谢。
    猜你喜欢
    • 2012-06-12
    • 2011-09-26
    • 1970-01-01
    • 1970-01-01
    • 2014-10-19
    • 2012-08-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多