Инструменты модульного тестирования JavaScript для TDD

Используйте функцию FROM_UNIXTIME() в MySQL

Помните, что если вы используете фреймворк, который хранит его в миллисекундах (например, временную метку Java), вы должны разделить на 1000 для получения правильного времени Unix в секундах.

717
задан 16 revs, 12 users 32% 18 January 2014 в 01:56
поделиться

8 ответов

Карма или транспортир

Карма является исполнителем тестов JavaScript, созданным с Node.js и предназначенным для поблочного тестирования.

Транспортир для сквозного тестирования и использует веб-Драйвер Селена для управления тестами.

Оба были сделаны Угловой командой. Можно использовать любую библиотеку утверждения, с которой Вы хотите также.

Скринкаст: Начало работы Кармы

похожие страницы:

профессионалы:

  • Использование node.js, настолько совместимый с Победой/ОС X/Linux
  • Запустите тесты от браузера или бездисплейный с PhantomJS
  • Работавший несколько клиентов сразу
  • Опция запуститься, получите и автоматически закройте браузеры
  • Опция выполнить сервер/клиенты на компьютере разработчика или отдельно
  • Запустите тесты из командной строки (может быть интегрирован в муравья/знатока),
  • Тесты записи xUnit или стиль BDD
  • Поддержки несколько сред тестирования JavaScript
  • Автоматически выполненные тесты на сохранении
  • Междоменные запросы прокси
  • Возможный настроить:
    • Расширьте его для обертывания других сред тестирования (Жасмин, Мокко, встроенный QUnit)
    • Ваши собственные утверждения/опровергать
    • Генераторы отчетов
    • Средства запуска браузера
  • Плагин для WebStorm
  • Поддерживаемый IDE Netbeans

Недостатки:

mocha.js

Я полностью дисквалифицирован для комментария функций mocha.js, преимуществ и слабых мест, но было просто рекомендовано мне кем-то, чтобы я доверял сообществу JS.

Список функций, как сообщается его веб-сайтом:

  • поддержка браузера
  • простая асинхронная поддержка, включая обещания
  • создание отчетов тестового покрытия
  • представьте различную поддержку в виде строки
  • JavaScript # API для того, чтобы запустить тесты
  • надлежащий статус выхода для CI поддерживает и т.д.
  • автоматические обнаружения и отключают окраску для non-ttys
  • неперехваченные исключения карт к корректному тестовому сценарию
  • асинхронная тестовая поддержка тайм-аута
  • определенные для теста тайм-ауты
  • поддержка уведомления о рычании
  • отчеты тестируют продолжительности
  • выделения замедляют тесты
  • поддержка наблюдателя файла
  • обнаружение утечки глобальной переменной
  • дополнительно запустите тесты, которые соответствуют regexp
  • автовыход для предотвращения "зависания" с активным циклом
  • легко метагенерируйте комплекты и тестовые сценарии
  • поддержка файла mocha.opts
  • активируемые по щелчку заголовки комплекта для фильтрации выполнения теста
  • поддержка для отладочных средств узла
  • обнаруживает множественные вызовы сделанного ()
  • пользуйтесь любой библиотекой утверждения, которую Вы хотите
  • расширяемое создание отчетов, связанное 9 + генераторы отчетов
  • расширяемый тест DSLs или "интерфейсы"
  • прежде, после, перед каждым, после каждого рычага
  • произвольная поддержка transpiler (сценарий кофе и т.д.)
  • Пакет TextMate

yolpo

yolpo

Это больше не существует, перенаправления к sequential.js вместо этого

Yolpo является инструментом для визуализации выполнения JavaScript. JavaScript разработчики API поощряется записать их варианты использования, чтобы показать и сказать их API. Такие варианты использования формируют основание из регрессионных тестов.

AVA

AVA logo

Футуристический исполнитель тестов со встроенной поддержкой ES2015. Даже при том, что JavaScript является однопоточным, IO в Node.js может произойти параллельно из-за его асинхронного характера. AVA использует в своих интересах это и запускает Ваши тесты одновременно, который особенно выгоден для тяжелых тестов IO. Кроме того, тестовые файлы выполняются параллельно как отдельные процессы, давая Вам еще лучшую производительность и изолированную среду для каждого тестового файла.

  • Минимальный и быстрый
  • Простой тестовый синтаксис
  • Запускает тесты одновременно
  • Осуществляет пишущие атомарные тесты
  • Никакой неявный globals
  • Изолированная среда для каждого тестового файла
  • Запишите свои тесты в ES2015
  • Поддержка обещания
  • Поддержка функции генератора
  • Асинхронная функциональная поддержка
  • Заметная поддержка
  • Улучшенный утверждает
  • Дополнительный TAP o utput
  • Чистые отслеживания стека

Buster.js

Исполнитель тестов JavaScript создается с Node.js. Очень модульный и гибкий. Это идет со своей собственной библиотекой утверждения, но можно добавить собственное, если Вам нравится. Библиотека утверждений отделяется, таким образом, можно также использовать ее с другими исполнителями тестов. Вместо использования assert(!...) или expect(...).not..., это использует refute(...) который является хорошим скручиванием, по моему скромному мнению.

Браузер JavaScript, тестирующий инструментарий. Это делает тестирование браузера с автоматизацией браузера (думайте JsTestDriver), QUnit разрабатывают статическое тестирование страницы HTML, тестирующее в бездисплейных браузерах (PhantomJS, jsdom...), и т.д. Смотрите на обзор!

Node.js, тестирующий инструментарий. Вы получаете ту же библиотеку тестового сценария, библиотеку утверждения, и т.д. Это является также большим для гибридного браузера и кода Node.js. Запишите свой тестовый сценарий с Buster. JS и выполненный это и в Node.js и в реальном браузере.

Скринкаст: Buster.js, Начинающий (2:45)

профессионалы:

  • Использование node.js, настолько совместимый с Победой/ОС X/Linux
  • Запустите тесты от браузера или бездисплейный с PhantomJS (скоро)
  • Работавший несколько клиентов сразу
  • Поддержки тестирование NodeJS
  • Не должны выполнять сервер/клиенты на компьютере разработчика (никакая потребность в IE)
  • Запустите тесты из командной строки (может быть интегрирован в муравья/знатока),
  • Тесты записи xUnit или стиль BDD
  • Поддержки несколько сред тестирования JavaScript
  • Задержите тесты вместо того, чтобы комментировать их
  • Встроенный SinonJS
  • Автоматически выполненные тесты на сохранении
  • Междоменные запросы прокси
  • Возможный настроить:
    • Расширьте его для обертывания других сред тестирования (JsTestDriver встроил),
    • Ваши собственные утверждения/опровергать
    • Генераторы отчетов (xUnit XML, традиционные точки, спецификация, касание, TeamCity и более встроенный)
    • Настройте/замените HTML, который используется для выполнения тестов браузера
  • TextMate и интеграция Emacs

Недостатки:

  • Stil в бета-версии так может быть багги
  • Никакой плагин для Eclipse/IntelliJ (все же)
  • Не группирует результаты OS/браузером/версией как TestSwarm *. Это действительно, однако, распечатывает имя браузера и версию в результатах испытаний.
  • Никакая история предыдущих результатов испытаний как TestSwarm *
  • Не полностью работает над окнами по состоянию на май 2014

* TestSwarm является также Непрерывным Сервером интеграции при необходимости в отдельном сервере CI для Buster.js. Это действительно, однако, производит отчеты о xUnit XML, таким образом, должно быть легко интегрироваться с Гудзоном, Бамбуком или другими серверами CI.

TestSwarm

https://github.com/jquery/testswarm

TestSwarm официально больше не находится в процессе активного развития, как указано на их веб-странице GitHub. Они рекомендуют Карму, browserstack-бегуна или Интерн.

Жасмин

Jasmine

Это - управляемая поведением платформа (как указано в кавычке ниже), который мог бы заинтересовать разработчиков, знакомых с Ruby on Rails или Ruby on Rails. Синтаксис основан на RSpec, которые используются для тестирования в проектах направляющих.

Жасминовые спецификации могут быть выполнены от страницы HTML (qUnit способом) или из исполнителя тестов (как Карма).

Жасмин является управляемой поведением платформой разработки для тестирования Вашего кода JavaScript. Это не зависит ни от каких других платформ JavaScript. Это не требует DOM.

Если у Вас есть опыт с этой средой тестирования, способствуйте с большим количеством информации :)

Проект домой: http://jasmine.github.io/

QUnit

QUnit фокусируется на тестировании JavaScript в браузере при обеспечении как можно большего удобства разработчику. Аннотация от сайта:

QUnit является мощным, простым в использовании комплектом модульного теста JavaScript. Это используется jQuery, jQuery UI и jQuery Мобильные проекты и способно к тестированию любого универсального кода JavaScript

QUnit совместно использует некоторую историю с TestSwarm (выше):

QUnit был первоначально разработан John Resig как часть jQuery. В 2008 это получило свой собственный дом, имя и документацию API, позволив другим использовать его для их поблочного тестирования также. В то время, когда это все еще зависело от jQuery. Переписывание в 2009 фиксированного, что, теперь абсолютно автономные выполнения QUnit. Методы утверждения QUNIT следуют за спецификацией Поблочного тестирования CommonJS, которая была до некоторой степени под влиянием QUnit.

Проект домой: http://qunitjs.com/

Sinon

Другой большой инструмент является sinon.js Christian Johansen, автором Разработки JavaScript, на Которой делают пробную поездку. Лучше всего описанный один:

Автономные тестовые шпионы, тупики и насмешки для JavaScript. Никакие зависимости не работают ни с какой платформой поблочного тестирования.

Интерн

Веб-сайт Интерна обеспечивает прямое сравнение функции с другими средами тестирования в этом списке. Это предлагает больше функций из поля, чем какая-либо другая основанная на JavaScript система тестирования.

ШУТКА

Новая но очень мощная среда тестирования. Это позволяет основанное на снимке тестирование также, это увеличивает скорость тестирования и создает новое динамическое с точки зрения тестирования

Проверьте одни из их переговоров: https://www.youtube.com/watch? v=cAKYQpTC7MA

Еще лучше:Начало

1501
ответ дан 22 November 2019 в 21:33
поделиться

Смотрите на платформа модульного теста Ремня безопасности объекта Dojo (DOH) , который является в значительной степени платформой независимый ремень безопасности для поблочного тестирования JavaScript и не имеет никаких зависимостей от Dojo. Существует очень хорошее описание его в приложения Web 2.0 Поблочного тестирования с помощью Ремня безопасности Цели Dojo .

, Если Вы хотите автоматизировать тестирование UI (больной вопрос многих разработчиков) — выезд doh.robot (временный вниз. обновление: другая ссылка http://dojotoolkit.org/reference-guide/util/dohrobot.html ) и dijit.robotx (временный вниз) . Последний разработан для приемочных испытаний. Обновление:

статьи, на которые Ссылаются, объясняют, как использовать их, как эмулировать пользователя, взаимодействующего с Вашим UI с помощью мыши и/или клавиатуры, и как записать сессию тестирования, таким образом, можно "играть" его позже автоматически.

63
ответ дан 4 revs, 3 users 63% 18 January 2014 в 01:56
поделиться

Вы имеете, "работает на фактическом браузере" как на про, но по моему опыту который является доводом "против", потому что это медленно. Но то, что делает его ценным, является отсутствием достаточной эмуляции JS от альтернатив небраузера. Могло случиться так, что, если Ваш JS достаточно сложен, что только в тесте браузера будет достаточен, но существует пара большего количества опций рассмотреть:

HtmlUnit: "Это имеет довольно хорошую поддержку JavaScript (который постоянно улучшается), и в состоянии работать даже с довольно сложными библиотеками AJAX, моделируя или Firefox или Internet Explorer в зависимости от конфигурации, которую Вы хотите использовать". Если его эмуляция будет достаточно хороша для Вашего использования тогда, то это будет намного быстрее, чем управление браузером.

, Но возможно HtmlUnit имеет достаточно хорошую поддержку JS, но Вам не нравится Java? Тогда, возможно:

Быстрота : API Watir, работающий на JRuby, поддержанном HtmlUnit.

или так же

Schnell: другая обертка JRuby HtmlUnit.

, Конечно, если HtmlUnit не достаточно хорош и необходимо управлять браузером тогда, Вы могли бы полагать Watir управлять своим JS.

6
ответ дан Jeffrey Fredrick 18 January 2014 в 01:56
поделиться

Вы могли бы также интересоваться платформой поблочного тестирования, которая является частью qooxdoo, платформа RIA с открытым исходным кодом, подобная Dojo, ExtJS, и т.д. но с вполне всесторонним набором инструментальных средств.

Попытка интерактивная версия testrunner. Подсказка: совершите нападки серая стрелка, наверху покинутая (должен больше делаться ясным). Это - кнопка "игры", которая запускает выбранные тесты.

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

Для автоматизированного тестирования UI (на основе RC Селена), проверьте Средство моделирования проект.

3
ответ дан Andreas Ecker 18 January 2014 в 01:56
поделиться

Необходимо взглянуть на env.js. См. мой блог для примера, как записать модульные тесты с env.js.

3
ответ дан 2 revs 18 January 2014 в 01:56
поделиться

MochiKit имеет среду тестирования под названием SimpleTest, который, кажется, завоевал популярность. Вот сообщение в блоге от исходного автора .

2
ответ дан 2 revs, 2 users 75% 18 January 2014 в 01:56
поделиться

YUI имеет среда тестирования также. Это видео из Театра Yahoo! является хорошим введением, хотя существует много основ о TDD впереди.

Эта платформа универсальна и может быть выполнена против любой библиотеки JavaScript или JS.

6
ответ дан 2 revs, 2 users 86% 18 January 2014 в 01:56
поделиться

Раздел JavaScript в статье Википедии, Список структур модульного тестирования , предоставляет список доступных вариантов. Он указывает, работают ли они на стороне клиента, на стороне сервера или на обеих сторонах.

26
ответ дан 22 November 2019 в 21:33
поделиться
Другие вопросы по тегам:

Похожие вопросы: