Как стать автором
Обновить

Комментарии 29

Интересно, я сейчас как раз пытаюсь прикрутить кросс-браузерное тестирование Ext JS приложения на базе Selenium, и пока безуспешно. Попробую js-test-driver.
js-test-driver это именно среда запуска юнит-тестов. Не вполне ясно как его скрутить с тем же Selenium'ом.
я вместо селениума хочу попробовать
Пока они не сделают поддержку асинхронных тестов (сейчас ее нет в продакшене) судя по всему будет не легко…
Хм… когда я его пробовал он там не работал как надо. Может быть с тех пор обновили билд, надо проверить.
Собственно они как-раз отвечают, что асинхронный API есть, но выложена версия без каких-то критикал-багфиксов

«We've fixed several critical bugs since then. I'll let Cory know we should release an updated version.»
да, я видел. но всё-же есть. нужно дружно просить Кори выпустить новый релиз
да, таки не работает

Object [object Object] has no method 'defer'

это они зря конечно
но версия с svn работает
Из SVN взял бинарник? Или сам собрал из сорцов?
А кроме сафари и хрома, он умеет другие движки?

И есть ли возможность отлавливать ошибки работы с дом-моделью страницы?
Ему без разницы где гонять тесты. Какой браузер натравите на сервер и сделаете сapture — тот и будет гонять тесты. Можно хоть все имеющиеся подключить, и еще с других ОС удаленно тоже подключиться и на них тоже гонять.

Ошибка работы с дом моделью можете отлавливать через обычные assert*. document, window и любые производные от них (естественно) доступны в коде тестов.

+ он умеет декларативное добавление HTML на страницу прямо во время теста.
Мммм… То есть я правильно понимаю что надо запустить сервер, зайти последовательно на него всеми браузерами, выключить сервер и получить статистику по ошибкам?
Похоже вы невнимательно читали статью…

1. Запускаем сервер
2. Подключаем к нему все браузеры
3. Оставляем работать навсегда

Далее…

1. Запускаем среду исполнения тестов
2. Получаем отчет об ошибках
3. При необходимости исправить ошибки и повторить с п. 1

Сервер и браузеры могут жить вечно. Тесты запускаются вами или из IDE, среда исполнения подключается к серверу, выполняет в нем тесты (во всех подключенных браузерах, сама, автоматом, браузеры больше можно не трогать), вы получаете результат.
Интересно, а можно ли его подключить для интеграционного тестирования к рабочей среде — дабы прогнать еще и аяксики всякие?
Текущая версия не умеет делать асинхронные тесты. Я для этого использую различные mock'и. Уже сейчас на странице проекта есть wiki-страница описывающая методику асинхронного тестирования, но готовых бинарников пока нет, транк проекта, насколько я понимаю, сейчас не стабильный.

Есть различные сторонние варианты использования тестов QUnit (которые умеют делать асинхронность) и js-test-driver. Они описаны на wiki проекта и комментариях к ним.
Около года назад смотрел на js-test-driver, штука крутая, но с mootools и prototype не дружит никак. Сейчас глянул, все еще не починили. Рр.
А что конкретно и как не дружило?
Какой-то конфликт с парсингом json. В итоге просто ничего не работает, если в коде есть операции с json.
Возможно из-за того, что Prototype грешит модификацией прототипов встроенных объектов JS.
это проблема js-test-driver, а не Prototype, в общем то
Спасибо. поизучаю.
Хотя для js подобные тесты не очень нужны. Больше интересует тест на интерфейсность(или как это назвать) чем на логику…
Они не нужны пока пишем простые вещи. Для вещей масштаба jQuery и ExtJS такие тесты — необходимость (кстати, они у них есть).

Для интерфейсного тестирования попробуйте Selenium.

Для server-side очень даже могут понадобиться.
+46, а в закладки 59 отправили )
Не у всех есть карма / заряд. Ваш Капитан.
точно :)
Хороший пост, радует полнота изложения.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории