【发布时间】:2018-11-02 20:52:02
【问题描述】:
因此,由于存在两个小图像(每个 3k 大小),我的请求规范大大减慢了速度。同一个页面有两个更大的图像,一个超过 700k,但这些图像没有任何问题。这是代码(我讨厌的很苗条,但无论如何):
.row.columns#banner
= image_tag image_url("banner-tail-left.png"), class: 'banner-tail-left'
.banner-text WELCOME
= image_tag image_url("banner-tail-right.png"), class: 'banner-tail-right'
以下是测试速度:
两张图片都显示:
Finished in 4.01 seconds
Finished in 3.27 seconds
Finished in 3.55 seconds
Finished in 3.5 seconds
除非 Rails.env.test? 隐藏了两个图像?:
Finished in 1.56 seconds
Finished in 1.38 seconds
Finished in 1.23 seconds
Finished in 1.2 seconds
仅显示其中一张图片,时间就像它们都在显示一样缓慢。如果我用其他图像路径替换这两个图像路径,它会很快。知道可能是什么原因造成的吗?有没有办法告诉 Rspec 忽略所有图像?
【问题讨论】:
-
@JayDorsey 不,只是 Rspec 请求规范。有必要提capybara、phantomjs、selenium等吗?这是一个请求规范,而不是功能规范。嗯……FactoryGirl。
-
If 仅在您使用它们时才相关。由于没有显示测试,也没有显示您的帮助文件/配置,所以我的问题是一个低调的问题,旨在排除潜在的错误配置。调试时唯一想到的其他事情是查看
test.rb配置文件以了解您的资产设置(如果有人更改了它们)。此外,春天浮现在脑海 -
@JayDorsey 是的,这真的只是一个非常基本的请求测试。事实上,我只是尝试将其更改为一个完全静态的页面,测试只是获取“/path”和expect(true).to 为真,它仍在执行此操作。执行此操作的图像文件是 png,它们位于基本图像文件夹中,但基本图像文件夹中还有其他 png 不会减慢我的测试速度。我在 rails_helper 文件中看不到任何与资产相关的内容。不知道春天。
-
非常有趣的行为。我认为没有办法告诉 RSpec 忽略加载图像(你可以在使用 Capybara 时这样做,这是我之前问过的另一个原因)。如果无法检查图像或代码,这可能很难排除故障。由于您已经尝试用不同的图像替换(并且速度又快了),所以我将专注于检查这些图像。也许它们是名为 PNG 的 JPG 文件,或者应用了一些会减慢渲染速度的东西(alpha 通道?)我不太确定资产管道是否会在这些测试中发挥作用......
-
您能否发布一张或多张慢速图像的链接?想在我的机器上进行本地测试,看看我是否可以重新创建它。如果您使用其他帮助程序之一,例如
image_path,那也很慢吗?另外,使用image_tag+image_url,我认为标签知道在资产管道中查找的位置。两者都需要吗?
标签: ruby-on-rails rspec rspec-rails