在测试期间是否可以使用mysqldump而不是固定装置导入数据(在本例中,rake test:profile )。
我还没有成功地导出yml格式的mysql数据(工作正常)并将其导入rails (不起作用,rake任务抱怨其完整性完整的yml文件的格式设置)。
有或没有固定装置的出口/导入数据的其他几天?
发布于 2011-11-09 15:03:16
Mysqldump是一个命令行程序,因此您必须编写一个rake作业来清除您的DB。不过,我同意迈克·B的观点。有一般性的建议,如“脂肪模型,瘦身控制器”,去“工厂,而不是固定装置”从铁路涵盖的主题。工厂的优点是,如果您愿意,它们可以在每个测试之间回滚DB。固定装置也有一个缺点,不代表关系很容易,你必须创建和维护主/外键的手。有点疼。
如果我真的必须坚持使用夹具,我就不会导入数据来进行测试。测试您的数据库超出了应用程序的范围。如果你的应用程序真的依赖于数据的存在,那就把它放在seeds.rb中。但是应用程序数据不需要进行测试。例如,我真的不关心表用户字段first_name中的内容。如果是的话,我是在写一个数据测试器?
另外,我希望您不要将生产数据转储到测试数据库中,然后再对其进行测试。这样做太过分了。
如果您仍然希望使用mysqldump和补丁,请编写一个rake任务或脚本来执行以下操作:
这本质上就是像factory_girl那样的事务特性。只是要注意,你会重新发明轮子一点。
夹具是可以使用的,你只需要手工创建PK/FK。因此,我通常只使用几行进行测试。更重要的是测试超出范围的数据库层。如果要确保数据具有一定的质量,请在模型中添加带有"validates_blah_blah“的数据库约束。
希望我没有像迈克·B所说的那样做太多的“做别的事情”。我同意这很烦人。但我也想给你建议。
https://stackoverflow.com/questions/3947542
复制相似问题