如何加快涉及图像上传/调整大小的 Rails 单元测试?

发布于 2024-12-06 11:55:37 字数 304 浏览 1 评论 0原文

我的应用程序对图像做了很多处理。我用回形针将它们固定在模型上。我有大量涉及创建图像的测试(Test::Unit),这些测试运行得相当慢。

我在测试中使用 FactoryGirl 创建模型。这就是我创建图像附件的方式:

factory :product_image_100_100 do
    image File.new(File.join(::Rails.root.to_s, "/test/fixtures/images", "100_100.jpg"))
end

如何伪造图像上传或以其他方式加快速度?

My app does a lot with images. I use paperclip to attach them to models. I have tons of tests (Test::Unit) that involve creating images, these run pretty slowly.

I use FactoryGirl to create models in my tests. This is how I create image attachments:

factory :product_image_100_100 do
    image File.new(File.join(::Rails.root.to_s, "/test/fixtures/images", "100_100.jpg"))
end

How can I fake the image upload or otherwise speed things up?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

空名 2024-12-13 11:55:37

此片段对我有用:

require 'test_helper'
class PhotoTest < ActiveSupport::TestCase
  setup do
    Paperclip::Attachment.any_instance.stubs(:post_process).returns(true)
  end

  # tests...
end

更新。我当前的偏好是通过将以下内容添加到我的 test_helper.rb 中来全局消除 ImageMagic:(

module Paperclip
 def self.run(cmd, *)
   case cmd
   when "identify"
     return "100x100"
   when "convert"
     return
   else
     super
   end
 end
end

改编自 此处 – 顺便说一句,您可能想看看这个如果您有兴趣加快测试速度,请参阅文章)

This snippet worked for me:

require 'test_helper'
class PhotoTest < ActiveSupport::TestCase
  setup do
    Paperclip::Attachment.any_instance.stubs(:post_process).returns(true)
  end

  # tests...
end

Upd. My current preference is to stub out ImageMagic globally, by adding the following to my test_helper.rb:

module Paperclip
 def self.run(cmd, *)
   case cmd
   when "identify"
     return "100x100"
   when "convert"
     return
   else
     super
   end
 end
end

(Adapted from here – btw, you may want to take a look at this article if you're interested in speeding up your tests)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文