4
我想在運行Capybara測試時調整美洲獅配置。更改.env,.env.test(我使用dotenv)或config/puma.rb中的設置不起作用。如何在運行Capybara時配置美洲獅?
我在哪裏可以更改配置?
的Rails 5.1,騷靈1.15.0,水豚2.14.0,彪馬2.8.2
我想在運行Capybara測試時調整美洲獅配置。更改.env,.env.test(我使用dotenv)或config/puma.rb中的設置不起作用。如何在運行Capybara時配置美洲獅?
我在哪裏可以更改配置?
的Rails 5.1,騷靈1.15.0,水豚2.14.0,彪馬2.8.2
一般與水豚配置在register_server塊服務器。的:彪馬服務器定義水豚提供的是
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正在做::系統測試::服務器#寄存器,它被定義爲
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
謝謝!我並不完全清楚你的意思是「覆蓋當前的服務器註冊之一」 - 你能否顯示一些示例代碼並說明它將進入哪個文件?你是否要重寫'ActionDispatch :: SystemTesting :: Server.register'? –
@JohnBachir只需從上面的代碼重新註冊:rails_puma在你配置你的測試的任何文件中 - 它應該覆蓋註冊Rails –
爲了記錄,我能夠得到這個工作的唯一方法是通過重新定義我自己的服務器':my_custom_puma')並將其放在application_system_test_case.rb的底部。 application_system_test_case.rb或test_helper.rb中的任何其他位置都不起作用,並嘗試重新定義':rails_puma'不起作用。 –