如何在运行Capybara时配置puma?

我想在运行Capybara测试时调整puma配置。 更改.env,.env.test(我使用dotenv )或config / puma.rb中的设置无效。

我在哪里可以更改配置?

Rails 5.1,poltergeist 1.15.0,capybara 2.14.0,puma 2.8.2

通常使用Capybara,您可以在register_server块中配置服务器。 :puy服务器定义Capybara提供的是

Capybara.register_server :puma do |app, port, host| require 'rack/handler/puma' Rack::Handler::Puma.run(app, Host: host, Port: port, Threads: "0:4") end 

如果你正在使用Rails 5.1系统测试,那么在它上面添加了一层抽象,服务器配置在ActionDispatch :: SystemTesting :: Server#register中完成,定义为

 def register Capybara.register_server :rails_puma do |app, port, host| Rack::Handler::Puma.run(app, Port: port, Threads: "0:1") end end 

无论哪种方式,您都应该能够覆盖当前的服务器注册之一

 Capybara.register_server :rails_puma do |app, port,host| Rack::Handler::Puma.run(app, ...custom settings...) end 

或配置自己的

 Capybara.register_server :my_custom_puma do |app, port, host| Rack::Handler::Puma.run(app, ...custom settings...) end Capybara.server = :my_custom_puma