小编Jam*_*ani的帖子

运行rake资产:在测试之前预编译包括:js标记,否则跳过

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).

ruby rspec ruby-on-rails

4
推荐指数
1
解决办法
1551
查看次数

标签 统计

rspec ×1

ruby ×1

ruby-on-rails ×1