【问题标题】:Disable css in test environment for Rspec在 Rspec 的测试环境中禁用 css
【发布时间】:2015-03-15 10:29:41
【问题描述】:

我正在使用 rails 4 和 rspec 与 capybara 进行测试。 我想在我的测试环境中禁用 css。我怎样才能做到这一点?谁能帮帮我。

【问题讨论】:

    标签: capybara-webkit rspec3 ruby-on-rails-4.2


    【解决方案1】:

    最简单的方法 - 跳过在 /app/views/layouts/application.html.erb 中加载的 CSS 文件以进行测试环境。:

    <% unless Rails.env.test? %>
      <%= stylesheet_link_tag    "application", :media => "all" %>
    <% end %>
    

    【讨论】:

      【解决方案2】:

      Capybara 允许您将加载的特定 URL 列入黑名单。您可以利用此功能阻止加载 CSS 文件。例如,如果您的 CSS 是从 /assets/application.css 加载的:

      RSpec.configure do |config|
        config.before(:each, js: true) do
          page.driver.browser.url_blacklist = [
            "http://127.0.0.1:#{page.server.port}/assets/application.css"
          ]
        end
      end
      

      您可以通过打开 Capybara 的调试来确认正在加载哪些资产。要启用调试,只需将驱动程序设置为 :webkit_debug 而不是 :webkit

      Capybara.javascript_driver = :webkit_debug
      

      【讨论】:

      • 但我正在为水豚使用 poltergeist 驱动程序。
      • 我找到了这个marcgg.com/blog/2015/01/05/…。但没有得到如何添加这个文件来禁用规范中的 css。请您对此提出任何想法。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-03-04
      • 2011-06-28
      • 1970-01-01
      • 2015-07-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多