使用Factory_Girl时,功能测试运行速度非常慢

时间:2011-03-02 10:48:33

标签: ruby-on-rails factory-bot

在我们的Rails项目中,我们决定取消灯具并使用Factory_Girl代替我们的测试。我们使用TDD进行编程,因此我们有大量的单元和功能测试(Test :: Unit)。该应用程序有23个控制器和14个模型,这意味着我们有大量的测试。

当我们使用灯具时测试速度更快但我们发现它们很难保持(因为我们的模型协会开始增长)。

今天, TDD变得非常困难,因为运行我们的完整测试套件大约需要50秒(也许这并不多): - (

以下是最大的工厂之一。也许有一些问题导致对象构建运行缓慢......

Factory.define :content do |c|
  c.sequence(:id) {|n| n }
  c.title "Don't Make Me Think: A Common Sense Approach to Web Usability, 2nd Edition"
  c.description "Plain"
  c.privacy "private"
  c.category_id 2
  c.association :owner, :factory => :user
  c.file_file_name "file.abc"
  c.file_file_size 1024
  c.file_content_type "application/zip"
  c.cover_file_name "1.jpg"
  c.cover_file_size 200
  c.cover_content_type "image/jpeg"
  c.created_at "2010-01-01 00:00:00"
  c.opinions []
  c.creators []
end

有使用Factory_Girl经验的人可以告诉我们如何缩短测试时间吗?也许我们的工厂定义可以改进......

谢谢!

巴勃罗。

1 个答案:

答案 0 :(得分:0)

我们在Content的工厂中有很长的样本描述。通过减少该字段的测试值的长度,我们将运行时间减少了近50%。

我们也在问自己,我们在内容模型中使用acts_as_indexed的事实是否会减慢测试套件的执行速度,因为内容正在被Factory Girl创建时被编入索引。你觉得怎么样?

谢谢,

巴勃罗。