我已经添加了规范来使用 rspec 来覆盖 sidekiq 作业,但是现在,当我启动 Rails 服务器、控制台或只是 sidekiq 时,我会收到此警告:
WARNING: Sidekiq testing API enabled, but this is not the test environment. Your jobs will not go to Redis.
而且工作确实没有排队。
如何切换回开发API?
您可能想检查是否已将 gem 'rspec-sidekiq' 包含在组中:development。如果是这种情况,请将其从那里删除并仅在 :test 组中调用它。
按照上面 Thomas 的回答,如果你在 Gemfile 中没有找到
rspec-sidekiq
gem,请检查你的项目代码的任何部分(例如 sidekiq 初始化程序)是否有这样的代码:
require 'sidekiq/testing'
Sidekiq::Testing.inline!
我们在这里遇到了同样的问题,并且由于我们的开发和测试环境在 Docker 容器中共享相同的 gem,因此我们必须以不同的方式解决:
gem "rspec-sidekiq", ~> "3.1.0", require: false
spec/rails_helper.rb
require "rspec-sidekiq"
我在使用
sidekiqswarm
并预加载 test
gems 时发现此错误。
一旦我做出改变,它就完美了。
之前:
worker: SIDEKIQ_COUNT=5 SIDEKIQ_MAXMEM_MB=300 SIDEKIQ_PRELOAD=default,development,test sidekiqswarm -C config/sidekiq.yml
之后:
worker: SIDEKIQ_COUNT=5 SIDEKIQ_MAXMEM_MB=300 SIDEKIQ_PRELOAD=default,development sidekiqswarm -C config/sidekiq.yml```
还要在初始化程序文件和/或环境特定文件中查找 require 'sidekiq/testing/inline',例如 config/environments/development.rb –
这对我有用