Minitest 挂在 stylesheet_link_tag

Minitest hanging on stylesheet_link_tag

四个操作(索引、显示、新建、编辑)在 Minitest 中生成错误

ActionView::Template::Error: Error: @supports condition expected declaration
    on line 9749:12 of stdin
>> @supports (scroll-snap-type) {
-----------^
app/views/layouts/application.html.erb:9

应用程序布局调用的行

<%= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track': 'reload' %>

控制器测试套件运行了 13 次。 9 pass,但都是处理非视图方法(update, create, destroy)。

在没有激活 stylesheet_link_tag 的情况下,加上或减去它的选项,测试是否通过。当它设置为 <%# 时,测试运行(并通过)

奇怪的是,这些测试过去都通过了,而 application.html.erb 没有被修改。 Turbolinks 不能被删除(并且测试套件为此失败似乎很奇怪)。

唯一的变化是引入了覆盖率和 ruby​​critic 宝石。然而以两种不同的方式调用测试

rails test test/controllers/channels_controller_test.rb
COVERAGE=TRUE rails test test/controllers/channels_controller_test.rb

导致相同的结果。
测试助手也会切换前两行以进行无覆盖测试

require 'simplecov'
SimpleCov.start 'rails'

# Previous content of test helper now starts here

ENV['RAILS_ENV'] ||= 'test'
require_relative "../config/environment"
require "rails/test_help"
require 'webmock/minitest'


class ActiveSupport::TestCase

  fixtures :all

  def log_in_as(user, shop)
    post user_session_url, params: { user_id: user.id, active_shop_id: @site.shop_id }
  end

end

移除宝石

# gem 'rubycritic', '~> 4.6', '>= 4.6.1', require: false

group :test do
#  gem 'simplecov', '~> 0.21.2'
end

也生成相同的结果。

应该配置什么以使 minitest 知道如何处理 turbolinks?

解决这个问题的关键在于错误消息的一个组成部分

 on line 9749:12 

那么它只能来自 css 文件。检查生成的 application.css 文件允许立即转到该行。