2011-05-23 81 views
1

我在Rails中进行了单元测试,它正在测试的模型使用Sequel是因为我们自己的内部原因,但测试数据是使用factory_girl创建的,似乎将整个测试包装在activerecord事务中。我可以使用self.use_transactional_fixtures = false,但想知道是否有一种方法在我的测试完成后不离开测试数据库我的数据库。在Rails测试中使用续集

回答

0

我不确定你正在使用什么测试库。对于RSpec的1,以下运行在自己的事务每个天赋例如:

class Spec::Example::ExampleGroup 
    def execute(*args, &block) 
    x = nil 
    Sequel::Model.db.transaction{x = super(*args, &block); raise Sequel::Error::Rollback} 
    x 
    end 
end 

对于RSpec的2,你可以使用一个围绕过滤器来完成同样的事情。我不知道如何在测试/单元中做到这一点,你可能需要重写Test :: Unit :: TestCase#run。

+0

是的我正在使用Test :: Unit – trobrock 2011-05-25 03:15:28