我在使用PaperTrail(Rails的对象自动版本控制)与RSpec测试时遇到了问题。通常情况下,我希望我的测试在没有PaperTrail版本控制的情况下运行,但是有一些测试需要开启PaperTrail。我通常使用Guard和Spork来运行我的测试,并且可以在给定的测试周围使用
然而,当我使用RSpec运行测试时,需要PaperTrail的测试失败了。更具体地说,似乎虽然
不幸的是,每个解决方案都让我回到了起点——使用Guard/Spork测试通过,但使用普通的RSpec测试未能通过。这是一个特别的问题,因为虽然我在本地使用Spork,但我们的持续集成服务器直接运行RSpec。
有人有什么见解吗?
PaperTrail.enabled = true
和PaperTrail.enabled = false
等内容,一切都可以正常工作。然而,当我使用RSpec运行测试时,需要PaperTrail的测试失败了。更具体地说,似乎虽然
before
过滤器中的代码可以产生版本对象,但测试中的代码却不能。经过大量挖掘、调试和尝试代码片段(我尝试了this和this),看起来最好的解决方案是使用PaperTrail README中提到的require "paper_trail/frameworks/rspec"
行。不幸的是,每个解决方案都让我回到了起点——使用Guard/Spork测试通过,但使用普通的RSpec测试未能通过。这是一个特别的问题,因为虽然我在本地使用Spork,但我们的持续集成服务器直接运行RSpec。
有人有什么见解吗?