【问题标题】:Minitest hanging on stylesheet_link_tagMinitest 挂在 stylesheet_link_tag 上
【发布时间】:2021-11-19 07:35:57
【问题描述】:

在 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 次通过,但它们都处理非视图方法(更新、创建、销毁)。

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

奇怪的是这些测试过去通过了,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 知道如何处理 turbolink?

【问题讨论】:

    标签: ruby-on-rails minitest simplecov


    【解决方案1】:

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

     on line 9749:12 
    

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

    【讨论】:

      猜你喜欢
      • 2012-03-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多