大规模运行时RSpec错误,但不是单独运行

时间:2012-05-19 01:40:17

标签: ruby-on-rails-3 testing rspec delayed-job

不幸的是,我没有具体的问题(或线索),但希望有人能指出我正确的方向。

当我运行所有测试(rspec规范)时,我得到两个与Delayed Job特别相关的测试失败。

当我单独运行此spec文件(rspec ./spec/controllers/xxx_controller_spec.rb)时,所有测试都通过......这是一个常见问题吗?我应该寻找什么?

谢谢!

1 个答案:

答案 0 :(得分:2)

您已经提到它了:隔离可能是解决方案。通常我猜你在数据库中有一些东西正在被改变而且没有正确清理(或者更确切地说,没有被嘲笑)。

在这种情况下,虽然我建议,因为系统工作负荷很高,延迟的工作没有足够快地完成工作。挑战在于应该测试的所有异步任务:您不能让系统运行延迟的作业,而是模拟调用并确保已收到延迟的作业。

可悲的是,没有任何例子,我几乎无法指出失踪的嘲笑。但要确保对delay_jobs和类似的所有调用都接收到正确的数据,但实际上并没有创建和运行这些作业 - 您的规格也会更快。确保隔离了测试中的函数,而不是调用外部依赖项。