不幸的是,我没有具体的问题(或线索),但希望有人能指出我正确的方向。
当我运行所有测试(rspec规范)时,我得到两个与Delayed Job特别相关的测试失败。
当我单独运行此spec文件(rspec ./spec/controllers/xxx_controller_spec.rb)时,所有测试都通过......这是一个常见问题吗?我应该寻找什么?
谢谢!
答案 0 :(得分:2)
您已经提到它了:隔离可能是解决方案。通常我猜你在数据库中有一些东西正在被改变而且没有正确清理(或者更确切地说,没有被嘲笑)。
在这种情况下,虽然我建议,因为系统工作负荷很高,延迟的工作没有足够快地完成工作。挑战在于应该测试的所有异步任务:您不能让系统运行延迟的作业,而是模拟调用并确保已收到延迟的作业。
可悲的是,没有任何例子,我几乎无法指出失踪的嘲笑。但要确保对delay_jobs和类似的所有调用都接收到正确的数据,但实际上并没有创建和运行这些作业 - 您的规格也会更快。确保隔离了测试中的函数,而不是调用外部依赖项。