Функциональные тесты работают очень медленно при использовании Factory_Girl - PullRequest
2 голосов
/ 02 марта 2011

В нашем проекте 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 голосов
/ 02 марта 2011

У нас было очень длинное описание образца на фабрике нашего Контента.Сокращая длину тестового значения для этого поля, мы сократили время выполнения почти на 50%.

Мы также спрашиваем себя, не замедляет ли тот факт, что мы используем act_as_indexed в нашей модели содержимоговыполнение набора тестов, поскольку содержимое индексируется по мере их создания Factory Girl.Как вы думаете?

Спасибо,

Пабло.

...