cjm*_*671 14 bdd selenium ruby-on-rails cucumber capybara
通常我在端口3000使用rails dev服务器.
Capybara/Cucumber使用Capybara.server_port = 31337.如果我从默认驱动程序切换到selenium,它看起来像是尝试在端口80上连接.
我想了解:
如果有人有一个env.rb配置的例子,请帮助我告诉我!
谢谢!
克里斯.
Vol*_*ldy 14
如果使用selenium,则应在测试环境中启动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
Run Code Online (Sandbox Code Playgroud)
如果您不希望每次运行黄瓜场景之前都启动服务器,我建议您使用capybara webkit驱动程序.所有javascript场景都将在后台运行.它也适用于持续集成服务器.
如果您使用的是Linux平台,则capybara-webkit需要运行X服务器.要设置它,你可以使用无头宝石.这是黄瓜的无头配置:
# 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
Run Code Online (Sandbox Code Playgroud)
这可能会也可能不会回答您的问题,但这是我的env.rb文件(相关位)。
Capybara.app_host = "http://0.0.0.0:3000"
Capybara.server_port = 3000
Run Code Online (Sandbox Code Playgroud)
我那里也有这个:
Capybara.register_driver :iphone do |app|
require 'selenium/webdriver'
profile = Selenium::WebDriver::Firefox::Profile.new
profile['general.useragent.override'] = "iPhone"
Capybara::Selenium::Driver.new(app, :profile => profile)
end
Run Code Online (Sandbox Code Playgroud)
也许您可以在register_driver位中包含Capybara.app_host和.server_port行,并在Cucumber脚本中切换驱动程序。:/
| 归档时间: |
|
| 查看次数: |
16049 次 |
| 最近记录: |