【问题标题】:Ruby, cucumber, capybaras: is it possible to switch between sauce labs and local runs when running parallel tests?Ruby、黄瓜、水豚:运行并行测试时是否可以在酱汁实验室和本地运行之间切换?
【发布时间】:2015-09-01 14:03:13
【问题描述】:

目前我正在开发一个应该能够在本地和酱汁实验室运行的环境,但我遇到了以下问题:

当使用 Cucumber 时,需要使用标签“@selenium”来将酱汁与并行测试集成。然而,这个标签也强制测试在酱汁实验室运行(我希望能够在酱汁和本地之间切换)。有没有办法可以使用环境变量或标签来改变这种行为?

操作系统:OSX 优胜美地 测试堆栈:Ruby、Capybara、Cucumber、Rake。

注意:如果没有 Selenium 标签,我可以同时运行酱汁实验室和本地以进行单次测试运行或顺序所有测试运行。我是红宝石/水豚/黄瓜的新手,因此非常感谢任何一般提示)

适用于单个特征和黄瓜特征的方法:

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

【问题讨论】:

    标签: ruby selenium


    【解决方案1】:

    下面的代码对我有用。我将黄瓜与水豚一起使用,我的功能用@selenium 和我用于过滤的其他几个标签(@core)标记。

    在酱实验室执行套件的命令-

    RUN_ON_SAUCE=真 SC_EXECUTABLE=path/to/sauce/connect/executable START_TUNNEL=true ENVIRONMENT=staging parallel_cucumber features -o "-t @core" -n 8

    在本地执行套件的命令-

    parallel_cucumber 特征 -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
    

    【讨论】:

      猜你喜欢
      • 2022-06-30
      • 2016-02-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多