Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby、cucumber、capybaras:在运行并行测试时,是否可以在沙司实验室和本地运行之间切换?_Ruby_Selenium - Fatal编程技术网

Ruby、cucumber、capybaras:在运行并行测试时,是否可以在沙司实验室和本地运行之间切换?

Ruby、cucumber、capybaras:在运行并行测试时,是否可以在沙司实验室和本地运行之间切换?,ruby,selenium,Ruby,Selenium,目前,我正在开发一个能够在本地和酱油实验室上运行的环境,但我有以下问题: 使用Cucumber时,需要标记“@selenium”,以便与并行测试进行集成。然而,这个标签还强制测试在sauce实验室上运行(我希望能够在sauce和local之间切换)。有没有一种方法可以使用环境变量或标记来更改此行为 OS:OSX约塞米蒂 测试堆栈:红宝石,水豚,黄瓜,耙子 注意:如果没有Selenium标签,我可以运行sauce labs和local进行一次测试运行或连续的所有测试运行。我不熟悉ruby/capy

目前,我正在开发一个能够在本地和酱油实验室上运行的环境,但我有以下问题:

使用Cucumber时,需要标记“@selenium”,以便与并行测试进行集成。然而,这个标签还强制测试在sauce实验室上运行(我希望能够在sauce和local之间切换)。有没有一种方法可以使用环境变量或标记来更改此行为

OS:OSX约塞米蒂 测试堆栈:红宝石,水豚,黄瓜,耙子

注意:如果没有Selenium标签,我可以运行sauce labs和local进行一次测试运行或连续的所有测试运行。我不熟悉ruby/capybara/cucumber,因此非常感谢您提供的任何一般提示)

使用单一特征和黄瓜特征的方法:

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