水豚:生成服务器时如何 运行 编码?
Capybara: how to run code when server is spawned?
我有一个带有 WebPack 的 Sinatra 应用程序,当我在开发中启动我的应用程序时,我生成了一个进程 运行ning Webpack Dev Server 并使用 RackProxy 从我的 Sinatra 应用程序提供资产。
当 Capybara 生成 ruby 服务器时 运行 在我的 JS Capybara 验收测试中,我还必须 运行 Webpack Dev Server。
到目前为止,我已经想到将 WDS 启动放在驱动程序寄存器块中,但我有不同的驱动程序。
Capybara.register_driver :headless_chrome do |app|
Rack::WebpackProxy.start_server
Capybara::Selenium::Driver.new(app, browser: :chrome, args: ["headless"])
end
生成 Capybara 服务器时 运行 代码的钩子是什么?
Capybara.server=
获取启动服务器时使用的服务器进程的注册名称,您可以使用 Capybara.register_server
注册自己的名称。因此你应该能够做类似
的事情
Capybara.register_server :my_server do |app, port, host, **options|
# start whatever you need started here
do_my_stuff
Capybara.servers[:puma].call(app, port, host) # assuming you want puma as the actual server
end
Capybara.server = :my_server
我有一个带有 WebPack 的 Sinatra 应用程序,当我在开发中启动我的应用程序时,我生成了一个进程 运行ning Webpack Dev Server 并使用 RackProxy 从我的 Sinatra 应用程序提供资产。
当 Capybara 生成 ruby 服务器时 运行 在我的 JS Capybara 验收测试中,我还必须 运行 Webpack Dev Server。
到目前为止,我已经想到将 WDS 启动放在驱动程序寄存器块中,但我有不同的驱动程序。
Capybara.register_driver :headless_chrome do |app|
Rack::WebpackProxy.start_server
Capybara::Selenium::Driver.new(app, browser: :chrome, args: ["headless"])
end
生成 Capybara 服务器时 运行 代码的钩子是什么?
Capybara.server=
获取启动服务器时使用的服务器进程的注册名称,您可以使用 Capybara.register_server
注册自己的名称。因此你应该能够做类似
Capybara.register_server :my_server do |app, port, host, **options|
# start whatever you need started here
do_my_stuff
Capybara.servers[:puma].call(app, port, host) # assuming you want puma as the actual server
end
Capybara.server = :my_server