繁体   English   中英

水豚:生成服务器时如何运行代码?

[英]Capybara: how to run code when server is spawned?

我在WebPack中有一个Sinatra应用程序,当我在开发中启动我的应用程序时,我产生了一个运行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=使用启动服务器时要使用的服务器proc的注册名称,并且您可以使用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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM