tl;博士 -
是否可以rake assets:precompile仅在:js运行测试体中包含测试时运行单个命令(例如)?
-
我正在开发一个rails 5,ruby 2.3.1应用程序,它有一个大型rspec测试套件.
我们最近webpacker在应用程序中安装了gem,这导致我们必须运行:
$ bundle exec rake assets:precompile
在运行测试之前.如果未运行上述命令,则将针对最近预编译的资产运行测试.
这引起了一些令人头疼的事情,因为开发人员已经忘记了这一步骤,然后撞到墙上,直到有人记得在运行测试套件之前运行它.
理想情况下,我想简单地添加到spec/spec_helper.rb:
config.before(:suite) do
system('bundle exec rake assets:precompile')
end
Run Code Online (Sandbox Code Playgroud)
但是,这将在每次运行测试套件或其中的任何子集之前运行预编译.这将大大减慢后端开发人员的开发时间,后者只是尝试运行通常需要0.15秒的单个请求规范.
此外,我们通常:js在开发过程中跳过运行测试,guard因为它们花费的时间太长.:js在部署或推送到远程分支之前,我们只是将规范作为完整性检查运行.
不幸的是,将{:js => true}选项添加到:
config.before(:suite, js:true)
Run Code Online (Sandbox Code Playgroud)
也不起作用,因为选项被忽略了before(:suite).