Как запустить тесты rspec в нескольких браузерах - PullRequest
0 голосов
/ 15 ноября 2018

Я хочу запускать свои скрипты одновременно на firefox и chrome в rspec. хотел узнать возможно ли это?

Когда мы используем testNG с java, мы можем запускать тесты параллельно, используя testng.xml, но теперь я хочу знать, есть ли что-то подобное в rspec для реализации.

Когда я пробовал использовать несколько потоков, оба браузера запускаются, но сценарии выполняются только в Firefox.

Я что-то пропустил?

И файл My Driver.rb выглядит как

RSpec.configure do |config|
  config.before(:all) do


    ###############################################################################################################################################
    ####Running in Multiple browsers
    ###############################################################################################################################################
BROWSERS =[ 'chrome','firefox' ]


  threads = []
  BROWSERS.each do |browser_name|
    # send(browser_name, 'abc')
    puts "browser name in each loop ", browser_name
    threads << Thread.new do
      puts "browser name inside thread ", browser_name
      send browser_name
    end

  end
  threads.each {|thread| thread.join}

    def firefox()
      puts "begin firefox"
      path = File.dirname(__FILE__) + "/driver/geckodriver"
      begin
        @driver = Selenium::WebDriver.for :firefox
        puts "Starting tests, initializing " + @driver.inspect()
      rescue Exception=>e
        puts "Start Exception"
        puts e.message
        puts e.backtrace.inspect
        raise e
      end
      @base_url = @test_env['url']
      @driver.manage.window.maximize
      @accept_next_alert = true
      @driver.manage.timeouts.implicit_wait = DEFAULT_WAIT_TIME
    end


    def chrome
      puts "begin chrome"
      path = File.dirname(__FILE__) + "/../driver/chromedriver"
      prefs = {:download => {:prompt_for_download => false, :default_directory => "#{ENV['PATH']}", :url => @base_url} }
      @driver = Selenium::WebDriver.for :chrome, :prefs => prefs
      @base_url = @test_env['url']
      @accept_next_alert = true
    end

    begin
      puts "begin firefox"
      firefox
    rescue Exception=>e
      # Exception already displayed, exiting
      puts "Exception Found: #{e}"
      raise e
      @driver.quit
    end


  config.after(:all) do
    puts "Finishing tests, killing " + @driver.inspect()
    @driver.quit
  end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...