设置:
我的 Rail 3.2.12 应用程序使用 Rspec 和 FactoryGirl 来测试其大部分各种模型方法。
我使用 Postgres 进行生产、开发和测试。
问题:
一个模型 ZipCodes 有大约 40,000 行,包括经度/纬度数据,以及用于选择满足特定标准的记录的大量方法。
我需要根据真实数据测试这些方法。由于大小,每次我们运行测试时重新加载表太慢了。
问题:
如何通过终端或控制台或 rake 任务加载该静态 ZipCodes 表一次,然后不理会它,除非/直到数据更改(每隔几个月我们可能会添加一些邮政编码)。(另外,在每次测试运行后不要用 DatabaseCleaner 擦除它,尽管我在另一个问题中得到了答案,但我可以使用 :except => [tablename]。)
我现在有 CSV 和 YAML 格式的数据,但如果需要,可以将其移动到任何其他格式。
如果有某种方法可以将数据从开发数据库复制到测试数据库,我还将数据加载到我的开发数据库中。
(注意:我们不使用任何关联的主键,我们通过邮政编码或经度等其他字段进行所有查找,因此将数据加载到测试中的方法是否从我的开发数据库中引入主键并不重要)