我在将PaperTrail(Rails 对象的自动版本控制)与 RSpec 测试一起使用时遇到问题。通常我希望我的测试在没有 PaperTrail 版本控制的情况下运行,但是有一些测试我希望打开 PaperTrail。我通常使用 Guard 和 Spork 运行我的测试,我可以使用类似PaperTrail.enabled = true
和PaperTrail.enabled = false
围绕给定测试的东西,并且一切正常。
但是,当我使用 RSpec 运行测试时,需要 PaperTrail 的测试失败。更具体地说,虽然before
过滤器中的代码可以生成版本对象,但测试中的代码却不能。经过大量的挖掘、修补和尝试代码片段(我已经尝试过this和this),看起来最好的解决方案是使用PaperTrail READMErequire "paper_trail/frameworks/rspec"
中提到的行。
不幸的是,这些中的每一个都让我保持在我开始的地方——使用 Guard/Spork 测试通过,但没有通过 vanilla RSpec。这尤其是一个问题,因为当我在本地使用 Spork 时,我们的持续集成服务器直接运行 RSpec。
有没有人有任何见解?