Каковы преимущества и недостатки функциональных тестов для нового приложения Grails?

У меня есть паралич анализа, который рассматривает все варианты функционального тестирования для нового приложения grails (v1.3.4). Я просмотрел

и должны быть другие. Я думаю, что некоторые из критериев, которые я буду использовать для принятия решения, включают (в определенном порядке):

  • Вероятная долговечность, активное развитие
  • Может делать ajax/javascript
  • Поддержка PageObject или аналогичные шаблоны
  • Зрелость
  • Безголовый (например, htmlunit) в порядке, особенно если он ускоряет работу.
  • Хорошая отчетность
  • Поддержка поставщика учетных данных NTLM или аналогичных
  • Компактные, надежные тестовые сценарии
  • Использует groovy язык

Мне было бы особенно интересно услышать от людей, которые пробовали более чем одну структуру. Спасибо!

Ответ 1

Я поддерживаю плагин для WebTest, но я бы рекомендовал попробовать Geb. Я еще не использовал его лично в проекте, но думаю, что он будет отмечать большинство ваших критериев.

Это наиболее активно развитый (ИМО), но совершенно новый. Он построен на WebDriver/Selenium, поэтому также должен хорошо соответствовать вашему прошлому опыту.

В наши дни WebTest не видит много развития и не поддерживает встроенную поддержку объектов страницы. Но это дает вам отличные отчеты. Это недостаток - это историческая основа Ant. Это затрудняет тестирование в динамическом режиме, так как ваши тестовые шаги создаются при выполнении тестового примера, а затем фактический тест выполняется как второй проход.

Я также использовал GFunc, но отсутствие отчетности - настоящая боль, и она не получает такого же развития, как Geb. Это гораздо больше "groovy", чем WebTest, хотя и является тонкой оболочкой над HtmlUnit, что позволяет вам легко "откатить свои собственные" функции тестирования.

веселит

Ли

Ответ 2

Функциональный тест Grails - только HtmlUnit. Я бы не предложил кодирование непосредственно в HtmlUnit в эти дни с другими доступными инфраструктурами, которые предоставляют вам объект страницы и лучшую абстракцию из коробки.

Я использовал плагин webdriver, который, кажется, работает очень хорошо и имеет объект страницы, встроенный, но поддержка объекта страницы связана с иерархией JUnit, что затрудняет мне использование, потому что я хочу также использовать Cucumber.

Я очень взволнован Geb и слышу много успешных историй с ним, но не получил, чтобы закончить настройку сам.