Подтвердить что ты не робот

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

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

Это как тесты интеграции.

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

4b9b3361

Ответ 1

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

Ответ 2

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

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

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

Ответ 3

Вы можете посмотреть TestSwarm:

что Im работает над: TestSwarm...

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

Все тестовые комплекты собраны. Например, 1 "фиксация" может иметь 10 связанных с ним тестовых наборов (и распространяться на несколько браузеров)...

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

Ответ 4

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

Ответ 5

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

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

Также посмотрите Dojo Object Harness (DOH) unit test framework http://dojotoolkit.org/reference-guide/util/doh.html

Посмотрите на аналогичный вопрос, который может дать вам представление о том, как использовать TDD js - JavaScript unit test для TDD.

Ответ 6

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

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

Ответ 8

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

Существует также infographic, объясняющий, как это работает

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

Ответ 9

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

Ответ 10

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

Цитата из домашней страницы

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

Ответ 11

Как уже говорили люди, вы должны использовать JsTestDriver. У него есть собственная тестовая система, но вы можете использовать с ней другие тестовые библиотеки, например Jasmine (http://pivotal.github.com/jasmine/). Вы можете найти список адаптеров для JsTestDriver здесь: http://code.google.com/p/js-test-driver/wiki/XUnitCompatibility

Ответ 12

Я пошел бы за QUnit, что и использует jQuery. Я запускал его на многих настольных браузерах, а также на телефонах iPhone и Android.

Есть несколько отличных tutorials, и его можно легко интегрировать с такими вещами, как JS-тест-драйвер. QUnit моделируется после JUnit и всех других инфраструктур тестирования xUnit (например, PHPUnit), поэтому легко получить API.

Основной синтаксис выглядит следующим образом:

test("my first test", function() {
  var str = "hello";
  equals( "hello", str, "Should be hello" );
});

Это также выглядит неплохо:

QUnit screenshot

Ответ 14

Selenium или SauceLabs и т.д. не являются единичным тестированием. Это функциональные/интеграционные тестовые решения.

Вам нужно абстрагировать свои внешние применения, например DOM, на unit test javascript.

Напишите свои тесты, чтобы они могли использовать любую внешнюю библиотеку, например, jquery. Таким образом, вы можете unit test свою логику, не касаясь каких-либо внешних факторов, и вы также можете протестировать кросс-браузерное тестирование.