Селен или Ватир для тестирования 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