Модульное тестирование по основам RequireJS и QUnit - PullRequest
1 голос
/ 21 ноября 2011

Я просто пытаюсь провести тестирование модулей в Javascript и RequireJS.Я создаю веб-приложение и, очевидно, хочу, чтобы тесты выполнялись только в разработке, а не в сборке.

Вопросы:

  1. Вы просто тестируете, когда хотите, или JS-тесты выполняются при каждой загрузке страницы в процессе разработки?
  2. Если тесты выполняются только по требованию, то как вы запускаете их?Строки запроса (например,? Testing = true) или что-то подобное?

Мне просто нужно представление о том, как люди проводят тестирование в разработке.Я использую BackboneJS, RequireJS и jQuery на внешнем интерфейсе с сервером NodeJS / ExpressJS на внутреннем интерфейсе.

Ответы [ 3 ]

1 голос
/ 30 июня 2012

Для работающего проекта Backbone у нас есть процесс сборки maven, который запускает наши автоматические тесты javascript через jsTestDriver, и мы читаем результаты с помощью Sonar. Обычно я запускаю тесты вручную (с помощью 'mvn test'), но я легко могу сказать maven каждый раз, когда я сохраняю файл, например. Я написал пост, в котором показано, как интегрировать QUnit, Requirejs и покрытие кода в JSTD, независимое от Maven: js-test-driver + qunit + охват + requirejs Он также содержит ссылки на QUnitAdapter, который является более современным и разработанным, чем на сайте jsTestDriver. Я обновлю этот пост, когда мне удастся написать о том, как я заставил jsTestDriver работать с Maven и Sonar. Надеюсь, это поможет.

1 голос
/ 20 сентября 2013

Grunt - это популярный инструмент сборки JS. Есть нечто, называемое grunt-watch, которое может отслеживать определенные файлы на предмет изменений и соответственно выполнять задачи. Вы можете легко запускать модульные тесты с чем-то вроде этого при каждом сохранении.

Обычно сквозные тесты занимают больше времени, и для этого мы используем CI. Я видел презентацию о Meteor TDD, которая проводит сквозные тесты после каждого сохранения.

Существует множество сквозных тестовых сред, и они могут работать в безголовом браузере, таком как Phantom Js, с помощью инструмента сборки, такого как grunt. Некоторые платформы открывают реальный браузер для запуска тестов, но запускаются через командную строку и сообщают о результатах с использованием XML.

Если вы разбили достаточно компонентов, у тестов может быть достаточно маленькая область для выполнения при каждом сохранении.

0 голосов
/ 21 ноября 2011

Для некоторого основного кода я использую JsUnit + Rhino на сервере сборки. Для более сложных битов (обычно интерфейс) я использую селен (он также работает на сервере сборки). Я ничего не тестирую при загрузке страницы, я использую только несжатые версии скриптов. У меня нет решения для интеграционных тестов.

...