【问题标题】:New rails project running system tests gives loaderror运行系统测试的新 Rails 项目出现 loaderror
【发布时间】:2021-05-31 17:17:56
【问题描述】:

Rails 新项目 (6.1) 在没有测试的情况下创建

rails new [project name] -T 

然后我安装了 rspec 5 并生成了一个输出以下错误的系统测试。

LoadError: cannot load such file -- 
capybara System test integration requires Rails >= 5.1
and has a hard dependency on a webserver and `capybara`,
please add capybara to your Gemfile and configure a webserver
(e.g. `Capybara.server = :webrick`) before attempting to use system specs.
No examples found.

【问题讨论】:

    标签: ruby-on-rails rspec capybara


    【解决方案1】:

    如果您在 Gemfile 中缺少 Capybara gem,正如错误提示的那样,您会收到此 LoadError。

    如果您在没有测试的情况下生成 rails rails new [project] -T 然后安装 RSpec,则可能会发生这种情况,因为它不会在 Gemfile 中添加 Capybara。

    解决方案

    添加一个测试组并将 capybara 放入其中可以解决这个错误。

    # Gemfile
    group :test do
      gem 'capybara', '>= 2.15'
    end
    

    【讨论】:

    • 不确定为什么需要这个作为答案?错误描述非常清楚“...请将水豚添加到您的 Gemfile”。没有任何迹象表明 rspec 会安装 capybara 并生成没有测试目录的 rails 项目也不会影响此设置。
    • 据我所知,我花了很多时间阅读 Capybara.server 设置并想知道“这是否意味着我应该设置 puma 以及在哪个区块?”在决定只添加水豚之前。这是第二次引起我的注意,所以我写了一个 Q/A 以确保没有第三次 - 我认为最终唯一访问这里的人会混淆 Gogglers,这将为我们节省时间。我不确定你对 RSpec 的看法是什么?
    • 您说 "...然后安装 RSpec,因为它不会在 Gemfile 中添加 Capybara"rspeccapybara 无关,就像 @987654327 @ 与 rspec 无关,所以我不确定为什么这很重要
    • 很公平。我认为RSpec 是“包括电池”的测试——我希望安装它后一切都能正常工作,但作为核心功能的功能测试却没有。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-09
    • 1970-01-01
    • 2011-02-23
    • 1970-01-01
    • 1970-01-01
    • 2020-05-02
    相关资源
    最近更新 更多