Селен или Ватир для тестирования Javascript в Rails
Мы используем RSpec и Cucumber в наших Rails-приложениях с хорошими результатами. Webrat отлично подходит для взаимодействия без AJAX, но мы готовы вернуться к написанию тестов для нашего Javascript.
У Webrat есть поддержка Selenium, и мы использовали Selenium раньше, но мне любопытно, есть ли у кого-то хорошие результаты с использованием Watir с Cucumber и какие плюсы и минусы у Watir против Selenium.
Ответы
Ответ 1
Как основатель OpenQA и Selenium RC, я, очевидно, склонен к Selenium как хороший вариант. Недавно мы просто выпустили версию 1.0 beta 2 и очень близки к финалу 1.0.
Однако вы не ошибетесь и с Watir/FireWatir. Адам комментирует, что WebDriver будет сливаться, чтобы сформировать Selenium 2.0, является правильным, но он неверен, подразумевая, что Watir не использует собственные перехватчики. Если бы Watir был просто клоном Selenium, а также использовал JavaScript-инъекцию, я бы сказал, что его не стоит смотреть.
Но поскольку у него есть собственные перехватчики, он может делать некоторые вещи, которые Selenium в настоящее время не может. Хотя в нем меньше поддерживаемых браузеров, он немного глубже в основном браузере, который он поддерживает (IE), и позволяет управлять вещами за пределами страницы/холста.
Вкратце: все в порядке, Selenium замечательный, и если вы немного посидите с Selenium, вы скоро получите лучшее из обоих миров с помощью WebDriver/Selenium 2.0.
Ответ 2
У меня хорошие результаты, используя Cucumber с Celerity через JRuby.
Celerity - это безгласный браузер, который обертывает HtmlUnit с помощью API, совместимого с Watir, и поддерживает тестирование JavaScript и AJAX.
Будучи безголовым, Celerity быстрее и легко интегрируется в цикл сборки непрерывной интеграции.
Поскольку Celerity совместим с API с Watir, вы можете легко переключаться между Watir и Celerity. Есть некоторые предостережения, но это стоит усилий.
Ответ 3
Я бы сказал, что Ватир был намного скользким, но менее полезным. Это, в основном, система автоматизации IE, с довольно неустойчивой поддержкой Firefox. (Я соглашусь не проверять FireWatir через некоторое время, возможно, он улучшился.)
Существует экспериментальная поддержка Selenium-RC на Watir. Это определенно будет лучшим из обоих миров.
Ответ 4
Вы можете попробовать WebDriver. В будущем он станет стать частью Selenium. Работает с JRuby.
Это отличается от Selenium, Sahi или Watir таким образом, что он управляет браузером изначально, не используя JavaScript, и на него не влияют многие проблемы, которые могут возникнуть в других решениях.
Ответ 5
Я пробовал Watir, но не с огурцом. Это было для приложения java. Проблемы, с которыми мы столкнулись, заключались в попытке определить, что страница загружена. Нам пришлось немного скрестить форумы, прежде чем находить решения. В противном случае это было хорошо.
Ответ 6
Watir 2.0 также будет использовать WebDriver.
Ответ 7
Если вы хотите использовать Watir on Rails 3.
Вы можете использовать драгоценный камень "watir-webdriver-rails" (я создатель).
Ответ 8
Лучшее решение, которое я нашел в Env-Js http://github.com/smparkes/env-js
Это похоже на webrat, но с поддержкой JS
Ответ 9
Не забывайте что-то вроде QUnit или Jasmine для unit test вашего javascript. Если ничто другое не сократит количество тестов с полным стеком, вы должны писать в огурцах/селен/capybara/whatever