ruby-on-rails – Rails在测试期间存储通过保存activerecord对象
Rails在哪里存储通过在测试期间保存activerecord对象而创建的数据?
我以为我知道这个问题的答案:显然在_test数据库中.但看起来这不是真的! 我使用这个系统来测试在rspec测试期间保存的ActiveRecord数据发生了什么: $rails -d mysql test $cd测试 $nano config / database.yml … …创建mysql数据库test_test,test_development,test_production $script / generate rspec $script / generate rspec_model foo 编辑Foo迁移: class CreateFoos 解决方法
默认情况下,在运行每个测试后,测试数据库中的项目将被删除.这样做是为了确保您的每个测试都有自己的沙箱,这样就不会导致与之前的测试发生任何交互.
再次,这是设计的.您不希望测试操作同一组数据(或依赖于同步执行),因为无法保证执行顺序. 但是,我相信如果你修改test / test_helper.rb文件来说这个: self.use_transactional_fixtures = false 代替 self.use_transactional_fixtures = true 它将导致测试数据库中的数据持久存在. 另外:我的建议是专门设计用于Test :: Unit,而不是RSpec.但是,我想你应该寻找类似的spec_helper.rb设置. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |