Rails资产管道测试通过生产破坏

Fab*_*ini 9 testing ruby-on-rails-3 asset-pipeline

我在资产管道方面遇到了以下问题.

  • 我有一封带有图片的HTML电子邮件.
  • 我有测试覆盖成功发送电子邮件的情况.
  • 所有测试都通过.
  • 在开始生产时,需要发送电子邮件的功能被破坏,因为HTML布局引用了不存在的图像.

这显然适用于所有预编译资产.

在我看来,突然测试不再可靠.有没有办法避免这种情况再次发生?

Fab*_*ini 13

我从自己的案例中找到了完美的解决方案.如果你设置

 config.assets.compile = false 
 config.assets.digest = true
Run Code Online (Sandbox Code Playgroud)

在测试环境中,您的测试将依赖于预编译资产.

由于在快速开发和测试阶段每次预编译资产都很烦人,在我的情况下,仅在CI上进行此配置就足够了.

您可以使用以下命令设置名为ci_config.rb的初始化程序:

if ENV['CI'] 
  class YourApp::Application
    config.assets.compile = false
    config.assets.digest = true 
  end
end
Run Code Online (Sandbox Code Playgroud)

并配置CI以运行rake资产:启动时预编译和rake资产:清理结束.