Rspec:要求 spec/workers

Rspec: requiring spec/workers

我在 app/workers 有一群 Sidekiq 工作人员,在 spec/workers 有一些匹配的规范。如何将两者都添加到我的 rspec 运行中?当我在终端上点击 rspec 时,就像看台 none 一样。

我看到了一些适合您情况的备选方案:

  • 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