Интересно, я сейчас как раз пытаюсь прикрутить кросс-браузерное тестирование Ext JS приложения на базе Selenium, и пока безуспешно. Попробую js-test-driver.
Ему без разницы где гонять тесты. Какой браузер натравите на сервер и сделаете сapture — тот и будет гонять тесты. Можно хоть все имеющиеся подключить, и еще с других ОС удаленно тоже подключиться и на них тоже гонять.
Ошибка работы с дом моделью можете отлавливать через обычные assert*. document, window и любые производные от них (естественно) доступны в коде тестов.
+ он умеет декларативное добавление HTML на страницу прямо во время теста.
Мммм… То есть я правильно понимаю что надо запустить сервер, зайти последовательно на него всеми браузерами, выключить сервер и получить статистику по ошибкам?
1. Запускаем сервер
2. Подключаем к нему все браузеры
3. Оставляем работать навсегда
Далее…
1. Запускаем среду исполнения тестов
2. Получаем отчет об ошибках
3. При необходимости исправить ошибки и повторить с п. 1
Сервер и браузеры могут жить вечно. Тесты запускаются вами или из IDE, среда исполнения подключается к серверу, выполняет в нем тесты (во всех подключенных браузерах, сама, автоматом, браузеры больше можно не трогать), вы получаете результат.
Текущая версия не умеет делать асинхронные тесты. Я для этого использую различные mock'и. Уже сейчас на странице проекта есть wiki-страница описывающая методику асинхронного тестирования, но готовых бинарников пока нет, транк проекта, насколько я понимаю, сейчас не стабильный.
Есть различные сторонние варианты использования тестов QUnit (которые умеют делать асинхронность) и js-test-driver. Они описаны на wiki проекта и комментариях к ним.
Юнит-тестирование и CodeCoverage для Javascript-кода