【问题标题】:Rspec: requiring spec/workersRspec:需要规范/工人
【发布时间】:2015-11-25 08:26:01
【问题描述】:

我在 app/workers 中有一堆 Sidekiq 工作者,在 spec/workers 中有一些匹配的规范。如何将两者都添加到我的 rspec 运行中?当我在终端上点击rspec 时,看台上没有包含任何内容。

【问题讨论】:

  • 将它们添加到加载路径?通常在spec_helper.rbrails_helper.rb 中完成。
  • 我是疯了还是有类似 no 的关于加载路径语法的文档?
  • manual 中的这个怎么样?我没有尝试过,但无论如何我正在测试工人:-P
  • 加载路径是 Ruby 的。您可以在 $: 全局变量上修改它。或者,您可以只 require 每个工作人员文件及其文件的相对或完整路径。

标签: ruby rspec sidekiq


【解决方案1】:

我看到了一些适合您情况的替代方案:

  • Rspec 加载:
    1. 确保 spec/worker 中的测试文件遵循 Rspec 的模式设置(例如 *.rb*_spec.rb)。
    2. 需要spec_helper.rb 中的工作人员文件。
  • 手动加载:需要 spec_helper.rb 中的 spec/workerapp/worker 文件以及 Ruby 定义的 glob。
  • Sidekiq 助手 gem:将 rspec-sidekiq gem 添加到您的项目中,如 explained at Sidekiq's

要将大量文件添加到加载路径,您可以:

  • 在启动过程的早期(例如在spec_helper.rb 的开头)将路径字符串添加到$: 全局变量:

$:.unshift(File.expand_path('../app/workers/**/*_worker.rb', File.dirname(__FILE__))

  • 使用 glob 加载文件而不修改加载路径:
Dir[File.expand_path('../app/workers/**/*_worker.rb', File.dirname(__FILE__))].each do |file|
  require file
end

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-02
    • 1970-01-01
    • 2018-10-16
    • 2020-07-22
    • 2013-03-05
    相关资源
    最近更新 更多