【问题标题】:Annoying Guard notification when testing测试时烦人的警卫通知
【发布时间】:2016-06-05 18:31:22
【问题描述】:

最近做了一个简单的ruby应用,一直在用minitest进行测试。

按照 Head First Ruby 书的建议,我使用 Rake 自动化了这个测试(我会写下它告诉我在本文末尾放入 Rakefile 的内容,以防有帮助)。测试似乎运行良好(一切都以我期望的方式通过),但我总是在测试结束时收到此通知:

rvm/gems/ruby-2.3.0/gems/guard-2.14.0/lib/guard/notifier.rb:28:警告:实例变量@notifier 未初始化

通过告诉 ruby​​ 包含我想要的文件来手动测试东西没有这个问题,只有当我使用“rake test”来测试东西时。

据我所知,这与我在第 3 章末尾遵循 Michael Hartl 的 Rails 教程时设置 Guard 有关。我按照设置说明进行操作(正确,据我所知可以说),这一切都在一个完全不同的文件夹中(最终我的 ruby​​ 和 rails 项目确实具有它们所在的相同父文件夹,但它们本身位于完全独立的 ruby​​_projects 和 rails_projects 文件夹中)。如果可能,我想在我正在测试的 ruby​​ 应用程序上停止此通知。有什么好办法吗?

我正在使用的 Rakefile 的内容,如果有帮助的话: 需要“rake/testtask”

  Rake::TestTask.new(:test) do |t|
  t.libs << "lib"
  t.test_files=FileList['test/**/test_*.rb']
end

我的测试文件需要 minitest/autorun,以及我正在测试的应用程序的文件,然后进行正常测试

【问题讨论】:

    标签: ruby unit-testing guard


    【解决方案1】:

    好像有什么奇怪的冲突...

    原因是Guard::Notifier.connect 没有连接。通常,当您运行警卫时,会调用 Guard.setup 来执行此操作。

    如果您没有使用保护(例如交互式),那么从您的 Rakefile 调用以下命令应该可以解决该问题:

      Guard::Notifier.connect(notify: false, silent: true)
      Guard::Notifier.disconnect
    

    这将初始化变量。

    为获得更快的响应,请始终在 Github 上的项目页面上报告此类问题。如果您可以共享发生这种情况的项目,那么可能会有更好的修复。 (最好提供一个存储库,因为它确实可以加快修复速度,而且如果没有确切的代码,这种错误通常很难模拟)。

    【讨论】:

      猜你喜欢
      • 2015-02-19
      • 1970-01-01
      • 1970-01-01
      • 2012-11-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-12-13
      相关资源
      最近更新 更多