Непрерывная интеграция / Тестирование кода Javascript на разных браузерах - PullRequest
8 голосов
/ 05 декабря 2010

Я пишу набор функций в Javascript, предназначенный для выполнения внутри браузера (без Javascript на стороне сервера).

Как выполнить повторные тесты модулей и производительности в разных браузерах и отслеживатьрезультаты для каждой сборки?

  • Тесты должны выполняться в браузере
  • Результаты тестов должны быть представлены в виде отдельного текстового или HTML-файла
  • Целевые браузерыInternet Explorer 7 и 8, последняя версия Firefox, последняя версия Chrome, последняя версия Safari
  • При необходимости я могу настроить выделенный сервер CI и виртуальные машины

Ответы [ 4 ]

9 голосов
/ 16 декабря 2010

Я использую Jasmine Framework для тестирования и JSTestDriver.Я также настроил как Hudson, так и TeamCity для CI как часть оценки, хотя в итоге остановился на TeamCity.

Jasmine - очень приятный BDD-фреймворк, который также предоставляет функции насмешек и заглушек.

Сервер JSTestDriver позволяет подключить к нему любой браузер, будь то локальный или удаленный, как уже указывал Войта.Мне удалось подключить браузеры, например, с компьютеров под управлением Windows и MAC, а также с iPhone ... вполне возможно подключить другие мобильные браузеры, если разработка мобильных приложений зашкаливает.JSTestDriver будет создавать XML-файлы результатов JUnit, которые Hudson или TeamCity смогут анализировать и создавать отчеты.

Как отметил Vojta, для JSTestDriver доступен плагин Eclipse.Недавно я перешел на WebStorm 1.0, а теперь и 2.0 (IDE от JetBrains), и для этой IDE также существует плагин, хотя и с некоторыми ошибками.WebStorm превосходен, между прочим, что касается разработки JavaScript.

Мы также пишем код JS на стороне сервера, и здесь Jasmine также отлично работает.

Я установил и настроилJsTestDriver / TeamCity в облаке Amazon, и я могу, например, запускать тесты Jasmine без головы.

Короче говоря, между 3 решениями (Jasmine, JSTestDriver и TeamCity) существуют тонны плагинов / адаптеров / рецептов, которые позволяют любое количество установок или конфигураций.Нельзя сказать, что другие комбинации не будут работать ... просто, для меня, эти комбинации доказали себя до сих пор.

1 голос
/ 07 декабря 2010

Jasmine (http://pivotal.github.com/jasmine) - это независимый от BDD фреймворк для тестирования JavaScript.

Было бы довольно просто использовать Jasmine и гем Jasmine Ruby для настройки матрицы прогонов для разных браузеров (Selenium)забирает браузер в жемчужину) и сообщает о них через CI, как вы предлагаете. Должно быть простым.

1 голос
/ 07 декабря 2010

Я использую JsTestDriver для разработки JS. Это тестовый прогон (не фреймворк для юнит-тестов), поэтому вы можете использовать его вместе с Jasmine или QUnit.

Вы просто запускаете сервер и захватываете браузеры (это может быть и удаленный браузер!), А затем запускаете тесты во всех этих браузерах через командную строку.

Есть также хороший плагин для затмения.

Подробнее о настройке среды непрерывной сборки см. http://code.google.com/p/js-test-driver/wiki/ContinuousBuild

.
1 голос
/ 05 декабря 2010

Привет, вы можете взглянуть на JQunit, инфраструктуру для модульного тестирования javascript, основанную на JQuery. Доступно здесь http://code.google.com/p/jqunit/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...