Как я могу протестировать несколько браузеров в одном скрипте Watir, используя gem-модуль тестирования

#ruby #selenium #watir-webdriver #testunit #selenium-grid2

#ruby #selenium #watir-webdriver #testunit #selenium-grid2

Вопрос:

Итак, речь идет не о параллельном запуске нескольких браузеров. Последовательно запускаются IE11, затем IE10, затем FireFox, ВСЕ они на разных виртуальных машинах, подключенных к Selenium Grid2.

Вот что у меня есть, запустив ОДИН браузер на ОДНОЙ виртуальной машине.

Файл: example_grid_ie11.rb

 require "rubygems"
require "test/unit"
require "watir-webdriver"

class GoogleSearch < Test::Unit::TestCase
  def setup
    caps = Selenium::WebDriver::Remote::Capabilities.ie
    caps.version = "11"
    caps[:name] = "Testing with IE 11"

    @browser = Watir::Browser.new(
    :remote,
    :url => "http://vm-auto.3mhis.vm:4444/wd/hub",
    :desired_capabilities => caps)
  end

  def teardown
    @browser.close
  end

  def test_search
    @browser.goto "google.com"
    @browser.text_field(:name => "q").set "watir"
    @browser.button.click
    @browser.div(:id => "resultStats").wait_until_present
    @browser.screenshot.save ("GoogleSearch_IE11.png")
    assert @browser.title == "watir - Google Search"
  end
end
 

Теперь я не мог понять, могу ли я запустить несколько методов настройки и несколько разрывов, и какой браузер закрыть при разрыве.

gem-модуль тестирования дает мне хороший результат в стиле xUnit, плюс множество утверждений.

Ответ №1:

Используйте Test::Unit 2.x

gem install test-unit

Пример:

https://github.com/test-unit/test-unit

несколько настроек:

 class TC_MyTest < Test::Unit::TestCase
   def setup # first
      @standard = MyClass.new
   end

   setup # second
   def setup_alpha
      @alpha = MyClass.new
   end

   setup # third
   def setup_beta
      @beta = MyClass.new
   end

   def test_stuff
      assert_true(1 == 1)
   end
end
 

множественные разборки:

 class TC_MyTest < Test::Unit::TestCase
   def test_stuff
      assert_true(1 == 1)
   end

   def teardown # last
      @standard = nil
   end

   teardown # second
   def teardown_alpha
      @alpha = nil
   end

   teardown # first
   def teardown_beta
      @beta = nil
   end
end