Автономное тестирование с использованием ruby ​​1.9.2, selenium-client и rspec (без рельсов) - PullRequest
2 голосов
/ 05 апреля 2011

Кто-нибудь успешно настроил автономную среду для использования ruby ​​1.9.2, selenium-client и rspec для тестирования веб-сайта NON-RAILS.

Я просмотрел сеть, но не могу получитьволшебная формулаСуществуют конфликты версий гемов, отсутствующие библиотеки и т. Д. На данный момент я полностью сбит с толку.

ОСНОВНАЯ ПРОБЛЕМА: у меня есть множество наборов тестов и тестов, завершенных с использованием SeleniumIDE 1.0.10 для приложения без RAILS (IIS /ASP).Я просто хочу использовать конвертированные тесты, которые SeleniumIDE может предоставить, и запускать их, используя ruby ​​или, что еще лучше, грабли.(Обратите внимание, что SeleniumIDE может создавать RSpec или Test / Unit тесты, и я хотел бы, чтобы любой из них работал).

Насколько я понимаю, у клиента selenium есть задачи rake для запуска / остановки сервера SeleniumRC изапустить тесты.Но из-за своей жизни я не могу этого добиться.

Я могу предоставить больше информации, если это будет необходимо.Но в этот момент я был бы рад узнать кого-либо, кто также идет по этому пути.

-Спасибо!

PS Я делаю это в качестве прелюдии к гибридизации IIS / ASPПриложение с рельсами и итеративно собирается на полную конвертацию.Если я не смогу сделать этот первый шаг, мои боссы откажутся от идеи отправиться на рельсы, поэтому, пожалуйста, помогите; -)

Ответы [ 3 ]

2 голосов
/ 15 декабря 2011

Вам потребуется установить gem 'rspec' и 'selenium-client'.У меня установлен ruby ​​1.9.2 и да, я использую rvm.Я извиняюсь за глупость firefox_version.У меня установлено несколько версий Firefox на моем MacBook.Если у вас установлен один Firefox, просто укажите: browser => "* firefox"

Вам нужно будет открыть два окна терминала.В первом запустите файл selenium-server.jar.

Во втором окне перейдите в каталог, содержащий rspec_hello.rb, и введите ruby ​​./rspec_hello.rb

Вот rspec_hello.rb

    require "rubygems"         # >= 1.8.12
    require 'rspec'            # >= 2.1.0
    require "selenium/client"  # >= 1.2.18

    describe "google" do
      # attr_reader :selenium_driver
      @selenium_driver = nil

      before(:each) do
        firefox_version = 3
        firefox_path = "/Applications/Firefox" + firefox_version.to_s + ".app/Contents/MacOS/firefox-bin"
        @selenium_driver = Selenium::Client::Driver.new \
          :host => "localhost",
          :port => 4444,
          :browser => "*firefox #{firefox_path}",
          :url => "http://www.google.com/",
          :timeout_in_second => 60
          @selenium_driver.start
      end

      after(:each) do
        puts " "
        puts "goodbye world"
        @selenium_driver.close_current_browser_session
      end

      it "test google" do
        puts "hello world"
        @selenium_driver.open "/"
        @selenium_driver.type "q", "selenium wiki"
        @selenium_driver.click "btnG"
        @selenium_driver.wait_for_text("Selenium Wiki")
    @selenium_driver.text?("Selenium Wiki").should be_true
  end
end
1 голос
/ 10 июня 2011

Рассматривали ли вы использование rvm для создания изолированной среды и bundler для управления зависимостями для вас?

0 голосов
/ 10 июня 2011

Я использую rvm и bundler при работе с рельсами. Для проекта, который меня беспокоит в этом вопросе, я не хотел иметь отдельную среду для автономных тестов OLD (IIS / ASP).

Итак, я решил использовать преобразования Test: Unit Selenium вместо RSpec, а также некоторые грабли для выполнения автономного тестирования в той же среде, что и гибридный проект.

Это имело смысл, потому что почти все эти тесты на селен проверяют половинную половину гибридной системы и будут заменены тестами rspec / cucumber / capybara для НОВОГО кода рельсов по мере его интеграции, вплоть до старой половины (наряду с автономных испытаний) больше нет.

В проекте «Только интегрированные рельсы» все еще используются селен, особенно для тестирования AJAX.

См. railscast для примера.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...