Paperclip を使っている Rails アプリのテスト高速化

区分
Rails
報告者

こんにちは、tahara です。

テストでも Paperclip を使っているモデルを FactoryGirl.create(:facility) とかすると、 ImageMagick の convert コマンドなどが走ってしまいます。 これがなかなか重くてテストを遅くしちゃっています。

そこで Paperclip のサムネイル作成をスキップしてテストを高速化してみました。

spec/support/paperclip_stub.rb

module PaperclipStub
  #21966 いこーよ: spec を Paperclip のサムネイル作成処理をスキップすることで高速化する
  def self.included(spec)
    spec.before do
      allow_any_instance_of(Paperclip::Attachment).to receive(:post_process_file).and_return(nil)
      # CMYKテストを飛ばす
      allow(Paperclip).to receive(:run).and_return(nil)
    end
  end
end

各 spec で include します。

describe Facility do
  include PaperclipStub
  ...

これで Summary (4 workers in 507.3806s) > Summary (4 workers in 351.2692s) となり 44.4% の高速化となしました。

(‘∇’)/゚・:【祝】:・゚\(‘∇’)

allow(Paperclip).to receive(:run).and_return(nil) のとこは http://tech.actindi.net/3474323393 のスキップです。

トップページに戻る

技師部隊からの
お知らせ

【求人】エンジニア募集しています。

本頁の来客数
八十七万千百七十六名以上(計測停止中)

メンバー一覧

アクトインディ技師部隊員名簿

アクトインディ技師部元隊員

アクトインディへ

カテゴリー

アクトインディ

aaaa