Skip to content

Instantly share code, notes, and snippets.

@evg2108
Last active August 29, 2015 14:05
Show Gist options
  • Save evg2108/ecc73936a972c991ae6c to your computer and use it in GitHub Desktop.
Save evg2108/ecc73936a972c991ae6c to your computer and use it in GitHub Desktop.
rspec тесты

Замечания по написанию rspec тестов

rspec и piperclip

При напсании rspec тестов было замечено, что использование файлов в качестве аттачментов могут сильно замедлять их прогон. В моём случае связано это было с тем, что при привязывании картинок Piperclip производит много медленных действий по их конвертированию. Для того, чтобы ускорить прохождение тестов, можно отключить конвертирование, переопределив некоторые методы Piperclip.

Первое что нужно сделать - переопределить метод Piperclip.run:

# We stub some Paperclip methods - so it won't call shell slow commands
# This allows us to speedup paperclip tests 3-5x times.
module Paperclip
  def self.run cmd, params = "", expected_outcodes = 0
    cmd == 'convert' ? nil : super
  end
end

Так же необходимо переопределить Paperclip::Attachment.post_process:

class Paperclip::Attachment
  def post_process
  end
end

Для Piperclip версий > 3.5.2 нужно внести некоторые изменения:

module Paperclip
  def self.run cmd, arguments = "", interpolation_values = {}, local_options = {}
    cmd == 'convert' ? nil : super
  end
end
 
class Paperclip::Attachment
  def post_process
  end
end

Эти действия позволят значительно ускорить прохождение тестов с использованием piperclip.

Оригинальная статья (на английском)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment