在我们的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经验的人可以告诉我们如何缩短测试时间吗?也许我们的工厂定义可以改进......
谢谢!
巴勃罗。
答案 0 :(得分:0)
我们在Content的工厂中有很长的样本描述。通过减少该字段的测试值的长度,我们将运行时间减少了近50%。
我们也在问自己,我们在内容模型中使用acts_as_indexed的事实是否会减慢测试套件的执行速度,因为内容正在被Factory Girl创建时被编入索引。你觉得怎么样?
谢谢,
巴勃罗。