Ruby、cucumber、capybaras:在运行并行测试时,是否可以在沙司实验室和本地运行之间切换?
目前,我正在开发一个能够在本地和酱油实验室上运行的环境,但我有以下问题: 使用Cucumber时,需要标记“@selenium”,以便与并行测试进行集成。然而,这个标签还强制测试在sauce实验室上运行(我希望能够在sauce和local之间切换)。有没有一种方法可以使用环境变量或标记来更改此行为 OS:OSX约塞米蒂 测试堆栈:红宝石,水豚,黄瓜,耙子 注意:如果没有Selenium标签,我可以运行sauce labs和local进行一次测试运行或连续的所有测试运行。我不熟悉ruby/capybara/cucumber,因此非常感谢您提供的任何一般提示) 使用单一特征和黄瓜特征的方法:Ruby、cucumber、capybaras:在运行并行测试时,是否可以在沙司实验室和本地运行之间切换?,ruby,selenium,Ruby,Selenium,目前,我正在开发一个能够在本地和酱油实验室上运行的环境,但我有以下问题: 使用Cucumber时,需要标记“@selenium”,以便与并行测试进行集成。然而,这个标签还强制测试在sauce实验室上运行(我希望能够在sauce和local之间切换)。有没有一种方法可以使用环境变量或标记来更改此行为 OS:OSX约塞米蒂 测试堆栈:红宝石,水豚,黄瓜,耙子 注意:如果没有Selenium标签,我可以运行sauce labs和local进行一次测试运行或连续的所有测试运行。我不熟悉ruby/capy
if (ENV["RUN_ON_SAUCE"] == "true")
puts('TRUE: ENV["RUN_ON_SAUCE"] = ' + ENV["RUN_ON_SAUCE"])
Capybara.default_driver = :sauce
Capybara.javascript_driver = :sauce
else
puts('FALSE: ENV["RUN_ON_SAUCE"] = ' + ENV["RUN_ON_SAUCE"])
Capybara.default_driver = :selenium
Capybara.javascript_driver = :selenium
end
下面的代码适用于我。我使用cucumber和capybara,我的功能用@selenium和其他几个标记(@core)标记,我使用它们进行过滤 用于在sauce labs上执行套件的命令- 在酱汁上运行=真 SC_EXECUTABLE=path/to/sauce/connect/EXECUTABLE 启动\u隧道=真实环境=暂存并行\u特性-o “-t@core”-n 8 命令在本地执行套件- 平行_黄瓜特性-o “-t@core”-n 8
下面的代码适用于我。我使用cucumber和capybara,我的功能用@selenium和其他几个标记(@core)标记,我使用它们进行过滤 用于在sauce labs上执行套件的命令- 在酱汁上运行=真 SC_EXECUTABLE=path/to/sauce/connect/EXECUTABLE 启动\u隧道=真实环境=暂存并行\u特性-o “-t@core”-n 8 命令在本地执行套件- 平行_黄瓜特性-o “-t@core”-n 8
if ENV['HEADLESS']
require 'capybara/poltergeist'
Capybara.default_driver = :poltergeist
Capybara.register_driver :poltergeist do |app|
Capybara::Poltergeist::Driver.new(app, {:debug => false, :default_wait_time => 60, :timeout => 120, :js_errors => false, :window_size => [1024, 768]})
end
Capybara.javascript_driver = :poltergeist
elsif ENV['RUN_ON_SAUCE']
require 'sauce'
require 'sauce/capybara'
require 'sauce/cucumber'
Capybara.default_driver = :sauce
Capybara.javascript_driver = :sauce
Sauce.config do |c|
if ENV['START_TUNNEL']
c[:start_tunnel] = ENV['START_TUNNEL']
c[:sauce_connect_4_executable] = ENV['SC_EXECUTABLE']
c[:connect_options] = {tunnel_domains: "'*.example.com'", max_logsize: "10485760"}
end
c[:browsers] = [
["Windows 8", "Internet Explorer", "10"],
["Windows 10", "Internet Explorer", "11"],
["Windows XP", "Internet Explorer", "8"]
]
c[:'max-duration'] = 300
end
else
Capybara.default_driver = :selenium
Capybara.default_max_wait_time = 120
Capybara.page.driver.browser.manage.window.maximize
end