如何在测试前清除所有活动作业队列

问题描述 投票:0回答:1

我有以下测试:

class ModelTest < ActiveJob::TestCase
  test 'test somethingb' do
    # test
  end
end

而且,我希望在进行任何测试之前清除所有队列。类似于:

class ModelTest < ActiveJob::TestCase
  before_each do
   Sidekiq::Worker::clear_all
  end

  test 'test somethingb' do
    # test
  end
end

当然不起作用。我没有找到有关谷歌搜索的更多信息。那可能吗?如果是这样,怎么办?

ruby-on-rails rails-activejob
1个回答
0
投票

直接从sidekiq docs

清除所有工人的工作:

Sidekiq::Worker.clear_all

为了确保作业不会在测试之间徘徊:

module SidekiqMinitestSupport
  def after_teardown
    Sidekiq::Worker.clear_all
    super
  end
end

class MiniTest::Spec
  include SidekiqMinitestSupport
end

class MiniTest::Unit::TestCase
  include SidekiqMinitestSupport
end
© www.soinside.com 2019 - 2024. All rights reserved.