Как запустить юнит-тесты во всех браузерах? - PullRequest
46 голосов
/ 21 апреля 2011

Я никогда не использовал Selenium, но думаю, что он предназначен для имитации взаимодействия с пользователем во всех браузерах.

Это похоже на интеграционные тесты.

Но как вы тестируете свои библиотеки / фреймворки js?тестирование) на всех браузерах в автоматическом режиме?

Ответы [ 14 ]

27 голосов
/ 21 апреля 2011

Для модульного тестирования вы можете попробовать http://code.google.com/p/js-test-driver/

JsTestDriver состоит из одного файла JAR, который содержит все, что вам нужно для начала.Подробное обсуждение параметра командной строки см. В разделе GettingStarted.

Вот обзор того, как JsTestDriver работает во время выполнения ...

13 голосов
/ 23 апреля 2011

Вы можете взглянуть на TestSwarm :

проект, над которым я работаю: TestSwarm ...

Его конструкция очень проста. Это тупой клиент JavaScript, который постоянно проверяет связь с центральным сервером, ища дополнительные тесты для запуска. Сервер собирает тестовые наборы и отправляет их соответствующим клиентам.

Все тестовые наборы собраны. Например, с 1 «коммитом» может быть связано 10 тестовых наборов (и они могут быть распределены по различным браузерам) ...

Приятной особенностью этой конструкции является то, что она способна работать отказоустойчиво. Клиенты могут приходить и уходить. В любой момент времени не может быть подключен Firefox 2s, в другое время их может быть тридцать. Задания ставятся в очередь и распределяются по мере необходимости. Кроме того, клиент достаточно прост, чтобы иметь возможность работать на мобильных устройствах (будучи полностью независимым от среды тестирования) ...

7 голосов
/ 24 апреля 2011

Лучшим imo является тот, что от YUI: http://developer.yahoo.com/yui/3/test/ Но проводить юнит-тестирование в каждом браузере довольно сложно ... Большинство людей просто тестируют его во время разработки и просто используют node.js для тестированияпозже, если они что-то сломали.

7 голосов
/ 21 апреля 2011

Как указано в предыдущей статье, вы можете использовать js-test-driver . Это специально для модульного тестирования JavaScript в нескольких браузерах, именно то, что вы хотите. Я возился с этим, и это довольно хорошо. Хотя я не проводил никаких серьезных коммерческих испытаний.

6 голосов
/ 21 апреля 2011

Он больше не поддерживается, но я все еще доволен JSUnit для модульного тестирования Javascript: https://github.com/pivotal/jsunit

Он включает в себя как HTML / Javascript Framework, который вы можете запустить в браузере, так и основанный на Java тестовый прогон, который вы можете вызывать из ant.

6 голосов
/ 21 апреля 2011

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

Для этого вы можете посмотреть что-то вроде RhinoUnit - http://code.google.com/p/rhinounit

Также естьвзгляните на структуру модульных тестов Dojo Object Harness (DOH) http://dojotoolkit.org/reference-guide/util/doh.html

Посмотрите на похожий вопрос, который может дать вам представление о том, как использовать TDD js - Инструменты модульного тестирования JavaScript для TDD

5 голосов
/ 24 апреля 2011

Я не использовал его до сих пор, и он все еще находится в бета-версии, но FuncUnit объявляет себя как "Набор функциональных тестов, основанный на qUnit, Selenium и jQuery".

Есть также инфографика , объясняющая, как это работает

Может быть, это то, что вы хотите? github repo , кажется, довольно активен.

5 голосов
/ 21 апреля 2011

Чтобы протестировать несколько браузеров параллельно, вы бы выбрали Selenium Grid. Пожалуйста, посмотрите здесь: http://selenium -grid.seleniumhq.org / step_by_step_installation_instructions_for_windows.html для пошаговых инструкций по его использованию.

4 голосов
/ 30 апреля 2011

Вы должны учитывать возможности, предлагаемые crossbrowsertesting.com (Это не бесплатно). Для тестирования js попробуйте JsUnit (http://www.jsunit.net/).

Цитируется с его домашней страницы

JsUnit - это инфраструктура модульного тестирования для клиентского (в браузере) JavaScript. По сути это порт JUnit для JavaScript. Также включена платформа для автоматизации выполнения тестов в нескольких браузерах и на нескольких компьютерах с разными ОС.

4 голосов
/ 29 апреля 2011

Вы должны проверить http://saucelabs.com это облачная среда селена, которая позволит вам построить свой тест и затем загрузить их, запустить в любом количестве браузеров.

...