LoginSignup
3
0

More than 1 year has passed since last update.

ActiveStorageでRspec実行時に生成された画像データをテスト終了後自動で削除する方法

Posted at

概要

ActiveStorageRspec実行時に生成した画像ファイルをテスト終了後に自動で削除する方法をメモとして残しておきます。
RailsRspecを用いてテストする際に画像を生成する場合があると思います。
その際に生成されたテスト用画像データは下記のようにconfig/storage.ymlに設定された保存先に保存されます。

test: # 'root'にテスト時に生成された画像を保存する場所を指定している
  service: Disk
  root: <%= Rails.root.join("tmp/storage") %>

テストを行っていくとどんどんと保存先のストレージが生成された画像で圧迫されてしまいます。
しかし、ある設定をすることでテスト終了後はストレージをクリーンアップすることができます。

方法

spec/rails_helper.rb

RSpec.configure do |config|
  config.after(:all) do
    FileUtils.rm_rf(ActiveStorage::Blob.service.root) if Rails.env.test?
  end
end

上記の設定をspec/rails_helper.rbに記載すれば自動的に画像のクリーンアップが実行されます。

備考

minitestでテストを行っている場合は下記ドキュメントに詳しく乗っていますので参照してください。

3
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
0