我已经添加了Specs以使用RSPEC覆盖Sidekiq作业,但是现在,当我启动Rails Server,Console或Just Sidekiq时,我有此警告:
WARNING: Sidekiq testing API enabled, but this is not the test environment. Your jobs will not go to Redis.
和工作确实没有出现。
如何切换回开发API?
您可能想检查您是否在组中包含了GEM'RSPEC-SIDEKIQ':开发。如果是这种情况,请将其从那里删除,仅在:test组中调用。
在上面的托马斯(Thomas)答案上跟进,如果您在Gemfile中找不到rspec-sidekiq
GEM,请检查项目代码的任何部分(例如Sidekiq Initializer)是否具有这样的代码:
require 'sidekiq/testing'
Sidekiq::Testing.inline!
我们在这里遇到了同样的问题,并且由于我们的开发和测试ENVS在Dockerized容器中共享相同的宝石,因此我们必须以不同的方式解决:
- 关闭rspec-sidekiq gem in gemfile的自动需求
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```