我目前正在使用Selenium进行全栈测试。现在我正在使用工厂女孩来填充我的数据库,随着应用程序的增长,它有点整理。有没有办法以最小的努力创建生产数据库的小副本?我不想在我的测试套装中使用整个数据库,因为它超过10GB。但相反,每个模型只有少数记录。
我可以手工编写一个脚本来执行此操作,但我希望已经有一个宝石或类似的东西可以为我做这个。
我作为测试人员定义了每个模型的最小记录数量。每个模型的关联也被复制。
这是一个例子
class User < ActiveRecord::Base
has_many :answers
end
class Answer < ActiveRecord::Base
belongs_to :user
belongs_to :question
end
class Question < ActiveRecord::Base
has_many :options
end
class Option < ActiveRecord::Base
belongs_to :question
end
脚本的外观示例配置
{
User: 5,
Option: 1
}
这将复制5个用户及其所有关联,但Option
模型除外,我们只包含其中一个。
请注意,我的应用程序包含400多个关系复杂的模型。手动尝试使用夹具/工厂(对于这些类型的测试)保持测试数据库与生产数据库同步将是一个淡褐色。
另请注意,我正在使用灯具进行单元测试,效果非常好,但在这种情况下,我需要一个预先填充的数据库用于更高级别的测试。