20 ноября 2013 года в штаб-квартире PayPal собралась группа встреч BayJax, чтобы обсудить тестирование JavaScript. Четыре докладчика, включая меня, рассказали о различных аспектах тестирования JavaScript. В то время как проливной дождь в тот вечер несколько снизил посещаемость (осталась пара пицц и несколько пустых стульев), видео высокого качества, ссылки на которые приведены ниже, могут расширить аудиторию этого информативного мероприятия.

Войта Джина о карме: Часть 1 и Часть 2

Войта Джина рассказала о Системе тестирования кармы. В дополнение к исчерпывающему набору тестов для AngularJS, Karma сама по себе является выдающейся структурой модульного тестирования JS. Наслаждаться:

Рид Берк о тестировании веб-приложений: Часть 1, Часть 2 и Часть 3

Настроить среду непрерывной интеграции для запуска более 100 000 тестов в 12 разных браузерах сложно, но необходимо. Управлять обратной связью от такой системы тоже сложно, но необходимо. Рид делится своей ценной точкой зрения, основанной на решении этой задачи для команды YUI; с использованием Yeti, SauceLabs, Jenkins и распараллеливания.

Сантьяго Суарес Ордоньес: Часть 1 и Часть 2

Сантьяго, старший разработчик инфраструктуры SauceLabs и коммиттер Selenium, смотрит на историю тестирования JavaScript, а также на его будущее. Он обсуждает происхождение Selenium, Selenium2, как Selenium2 API становится спецификацией W3C и как после этого кодовая база веб-драйвера практически сведется к нулю. Он также обсуждает то, что он считает идеальным подходом к автоматизированному тестированию для небольших команд. Наконец, он рассказал об очень классном API для кросс-браузерного тестирования JavaScript, который в настоящее время разрабатывается SauceLabs.

Мэтт Эдельман о Немо: Часть 1, Часть 2 и Часть 3

PayPal использует NodeJS для своих веб-приложений (см. krakenjs). Мы хотели писать тесты автоматизации браузера на JavaScript и выполнять их из тестируемого приложения. Хотя в npm было доступно несколько различных API-интерфейсов веб-драйвера (selenium-webdriver и wd), не было доступной среды, которая обеспечивала бы гибкую конфигурацию, необходимую для запуска одних и тех же тестов в разных средах и на разных устройствах. Я написал модуль Nemo, чтобы удовлетворить эти требования, а также предложить (а не принудительно) факторизацию, которая способствует сопровождению, удобочитаемости и повторному использованию кода.

Как видно на диаграмме ниже, система использует проводной протокол JSON, который может взаимодействовать с многочисленными драйверами (selenium grid, ghostdriver, ios-driver, Appium, SauceLabs и т. д.), чтобы автоматизировать только о любом браузере или даже нативных мобильных приложениях:

Мы используем Nemo вместе с Grunt (см. задание grunt grunt-loop-mocha) и Mocha для написания и запуска автоматических тестов на протяжении всего жизненного цикла разработки: разработка, контроль качества и непрерывная интеграция. Ожидайте, что Nemo скоро станет открытым исходным кодом!

Одно заметное изменение после этого выступления заключается в том, что теперь вы можете распараллеливать тесты Nemo, чтобы быстрее выполнять наборы тестов.

Удачного тестирования!