【发布时间】:2015-03-12 02:30:20
【问题描述】:
我在生产中使用 Redis + Resque,并想测试作业是否正在排队并正常运行。我正在寻找类似的东西
Resque.jobs(:queue_name).size.should == 0
post :some_action # This action causes a Resque job to be enqueued
# Test Enqueuing
Resque.jobs(:queue_name).size.should == 1
Resque.jobs(:queue_name).last.klass.should == "MyJob"
Resque.jobs(:queue_name).last.args.should == [1, "Arg_2"]
# Test performing
Resque.jobs(:queue_name).perform_all
# test the effect of running the job
如何在测试环境中启动 Redis + Resque?我不会一直手动运行 redis 服务器。我已经尝试过您尝试在config.before(:suite) 中运行 redis 服务器的解决方案,但是 redis-server 永远不会及时启动,并且 Resque 抱怨它无法连接到 Redis。
我尝试过使用Resque.inline,但是 1) 它不允许我测试作业是否已入队 2) 它总是将作业排入 :inline 队列中(我想测试作业是否最终在正确的队列中)。
【问题讨论】:
标签: ruby-on-rails rspec redis resque