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 不能被删除(并且测试套件为此失败似乎很奇怪)。
唯一的变化是引入了覆盖率和 rubycritic 宝石。然而以两种不同的方式调用测试
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
文件允许立即转到该行。