通常我在port 3000使用rails dev服务器.
Capybara / Cucumber使用Capybara.server_port = 31337.如果我从默认驱动程序交换到硒,它看起来像尝试在端口80上连接.
我正在想:
>使用硒时,需要在测试环境中单独实例化一个测试服务器.
>如果上述问题的答案是肯定的,我该如何做到这一点,所以我可以在Web驱动程序之间无缝互换,而不必继续改变事情?
如果有人有一个env.rb配置的例子,这将有助于让我知道!
谢谢!
克里斯.
解决方法
如果您使用硒,您应该在测试环境中启动Web服务器.您可以在不同的开发端口启动它.那么您应该配置Capybara来使用该端口:
Capybara.run_server = true #Whether start server when testing Capybara.server_port = 8200 Capybara.default_selector = :css #:xpath #default selector,you can change to :css Capybara.default_wait_time = 5 #When we testing AJAX,we can set a default wait time Capybara.ignore_hidden_elements = false #Ignore hidden elements when testing,make helpful when you hide or show elements using javascript Capybara.javascript_driver = :selenium #default driver when you using @javascript tag # Other option is: # Capybara.javascript_driver = :webkit
如果您不想在运行黄瓜情景之前每次启动服务器,建议您使用capybara webkit驱动程序.所有JavaScript方案都将在后台运行.它也将在连续集成服务器上工作.
如果您在Linux平台上,capybara-webkit需要运行X服务器.要设置它,您可以使用headless宝石.这里是黄瓜的无头配置:
# place code below in features/support/headless.rb if Capybara.current_driver == :webkit require 'headless' headless = Headless.new headless.start at_exit do headless.destroy end end