繁体   English   中英

Ruby on Rails 和 Sidekiq redis 连接池与并行测试?

[英]Ruby on Rails and Sidekiq redis connection pool with parallel tests?

我想并行运行我的 Rails 测试。 我目前正在使用 Sidekiq 自己的连接池与 redis 进行通信。 这里的问题是,如果我运行并行测试,它们会相互冲突。 Rails 有一个非常好的内置测试数据库系统,它为执行测试的每个线程创建 postgresql 的数据库克隆。 我将如何使用 Sidekiq redis 连接池来做到这一点?

您的测试根本不应该连接到 redis。 就像在测试环境中处理电子邮件的方式一样,默认情况下,Sidekiq 将为测试环境中的任何计划作业使用假队列。

基本上 - 并行运行测试不会导致 Sidekiq 作业出现任何问题。

您应该首先阅读有关测试的文档 - https://github.com/mperham/sidekiq/wiki/Testing

本质上,您可以测试以查看是否已使用以下方式安排了作业:

HardWorker.perform_async(1, 2)
HardWorker.perform_async(2, 3)
assert_equal 2, HardWorker.jobs.size

如果您需要运行作业,只需排空队列:

HardWorker.drain
assert_equal 0, HardWorker.jobs.size

更多详细信息请参见上面的链接。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM