【问题标题】:Understanding rails s conflict with Puma and Capybara. How do I properly install puma in the Gemfile?了解 rails 与 Puma 和 Capybara 的冲突。如何在 Gemfile 中正确安装 puma?
【发布时间】:2020-03-01 04:02:36
【问题描述】:

我正在继承一个代码库,其中测试已被放弃一年多一点。我正在尝试尽可能多地清理测试套件,但我很难用 1. Capybara 2. Puma,3. Selenium,4. 用 rails s 启动 Rails 服务器来梳理我的集成测试。

这是我对 Rails 4.2 应用程序的初始设置和问题。因此,从一开始就没有做任何事情,当我执行 rails 测试时,我收到以下错误:

Capybara 无法为其服务器加载puma,请将puma 添加到您的项目中,或通过Capybara.server = :webrick 之类的方式指定其他服务器。 (加载错误)。

我想指出,在一个名为 start-dev 的单独文件中,我的内容中有以下内容:

rails s -b 0.0.0.0

当我使用 ./start-dev 执行此命令时,我可以使用在我的 /etc/hosts 127.0.0.1 secure.ssl.local 中定义的此 url 查看我的开发应用程序

现在这里是我开始遇到麻烦的地方,通过阅读一些关于 capybara 和 puma 的 github 论坛,我首先将 puma 添加到我的 Gemfile 并捆绑安装,但现在我无法通过浏览器在@看到我的开发应用程序987654328@.

这是我得到的错误:

/usr/lib/ruby/2.6.0/uri/rfc3986_parser.rb:67:in `split': bad URI(不是 URI?): "tcp://0.0.0.0\r:3000" ( URI::InvalidURIError)

我注意到在启动时,当我执行 ./start-dev 时,如果你记得有 rails s -b 0.0.0.0,我看到了这个:

Booting Puma rails 4.2.11.1 application starting in development on https://0.0.0.0:3000

所以我对这个错误感到困惑。 Puma 是否阻塞了我的3000 端口意味着我必须更改 Puma 的端口?更令人困惑的是,不是在终端中运行./start-dev 而我只是运行rails s -b 0.0.0.0 它神奇地工作,除非它只有在我导航到localhost:3000 而不是secure.ssl.localhost 时才有效。这很重要,因为在 secure.ssl.localhost 我有并且需要一个证书,而我不需要 localhost。

最后再添一层混乱,当我在安装了 puma gem 的情况下运行测试并运行 rake test 时,我在 Puma 中得到了这个:

水豚首发彪马... * 版本 4.2.1 ,代号:遥远的气喇叭 * 最小线程:0,最大线程:4 * 监听 tcp://127.0.0.1:36608

而且测试需要很长时间才能加载。发生了很多事情,但我想我的问题可以总结如下?当我将 puma 安装到我的 rails 应用程序中时,我是否需要在特定端口上指定它以便它不会与我的应用程序冲突?如果没有 puma,我的测试将无法运行,而我的 ./start-dev 文件可以正常工作。使用 puma,我的测试有点工作,但我的 ./start-dev 文件不再存在。当然,必须有一个标准来配置 puma。谢谢。

【问题讨论】:

    标签: ruby-on-rails ruby


    【解决方案1】:

    将 puma 放入测试组,只为测试环境安装:

    group :test do
      gem "puma"
    end
    

    或者按照 Capybara 的建议,将Capybara.server = :webrick 放入你的spec/rails_helper.rb

    仅供参考:如果安装了 puma,Rails 将使用 puma 作为默认 Web 服务器

    【讨论】:

      猜你喜欢
      • 2014-02-08
      • 2019-03-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-12-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多