Карма и фреймворк для тестирования Jasmine, Mocha, QUnit

Несколько вопросов:

  • Как Karma и среда тестирования X (Jasmine, Mocha, QUnit) связаны друг с другом?
  • Какая эквивалентная структура в мире Java? Я предполагаю, что Jasmine, Mocha, QUnit равны jUnit / TestNG. Как насчет Кармы?
  • Можно ли запустить среду тестирования X (например, Jasmine) без Karma?
  • Подходит ли Karma для модульного тестирования или тестирования интеграции / e2e? Этот reference показывает для модульного теста, однако this говорит, что он предназначен для теста e2e.

9X_js

269
0
3
Общее количество ответов: 3

Ответ #1

Ответ на вопрос: Карма и фреймворк для тестирования Jasmine, Mocha, QUnit

Karma - программа для запуска тестов браузера.

Идея 9X_integration-testing состоит в том, что в браузерах изначально 9X_unittest отсутствует концепция загрузки файлов тестов, их 9X_javascript запуска и отчетов о результатах. Что делает 9X_unit-test карма (примерно):

  • запуск небольшого веб-сервера для обслуживания "клиентских" файлов javascript для тестирования (1)
  • также обслуживают "клиентские" файлы javascript с тестами (или спецификациями, как их часто называют) (2)
  • обслуживать настраиваемую веб-страницу, на которой будет запускаться код javascript для тестов (3).
  • запустите браузер, чтобы загрузить эту страницу (4)
  • сообщить результаты теста на сервер (5)
  • karma может снова сообщить результаты в текстовые файлы, консоль, все, что угодно вашему CI-серверу и т. д.

Рассмотрение каждой части:

(1) Эти 9X_.js файлы будут вашими настоящими js-файлами; вы 9X_integration-testing скажете карме, как их нагружать. Если вы 9X_js используете requirejs, есть плагин karma 9X_unittest и требуется некоторая конфигурация.

(2) Эти 9X_javascript тесты могут быть написаны в различных средах 9X_ecmascript тестирования Javascript (Jasmine, QUnit, Mocha); это 9X_integration-tests JS-код, который запускается в браузере.

(3) Пользовательская 9X_javascript веб-страница будет немного отличаться для 9X_unit-tests каждой среды тестирования; поэтому у karma 9X_.js есть плагины для разных фреймворков.

(4) Karma 9X_unit-tests может запускать страницу во многих браузерах 9X_unittest (FF, Chrome или браузеры без заголовка, такие 9X_vanilla-javascript как PhantomJs.)

(5) Отчеты о карме, опять 9X_vanilla-javascript же, зависят от структуры и имеют дело с 9X_javascript плагинами кармы.

Итак, чтобы ответить на 9X_integration-tests ваши вопросы:

  • в Java большинство людей используют JUnit, который одновременно является фреймворком для написания тестов и их запуска, но не имеет проблемы с различением среды, в которой выполняются тесты, и среды, в которой собираются отчеты о тестах; карма будет недостающим звеном между JUnit Suite и JUnit TestRunner
  • Да, все, что делает карма, можно делать «вручную» - выберите одну структуру (жасмин, кунит, мокко) и следуйте инструкциям. Преимущество кармы в том, что она предоставляет готовое решение, если вы используете стандартную настройку.
  • Карма может использоваться как для модульного теста (с jasmine / qunit / что угодно), так и для интеграционных тестов (которые будут использовать другой API, например webdriver, для управления браузером).

432
3

  • Это заслуживает публикации в блоге или чего-то ...

Ответ #2

Ответ на вопрос: Карма и фреймворк для тестирования Jasmine, Mocha, QUnit

Более короткий способ понять разницу:

Люди, тестирующие 9X_js простой Jasmine / Mocha, скорее всего, запускают 9X_vanillajs весь код на виртуальной машине Node.

Добавление 9X_unit-test Karma к смеси (поверх существующей выбранной 9X_vanilla-javascript вами платформы) запустит ваш набор тестов 9X_unit-tests с движком других браузеров.

Таким образом 9X_js вы получаете небольшие дополнительные возможности, присущие 9X_js среде браузера. Будет легче протестировать 9X_.js код, связанный с DOM, но вы также откажетесь 9X_javascript от дополнительных ресурсов, предоставляемых 9X_unittest механизмом Node (например, доступ к файловой 9X_.js системе / оболочке)

74
0

Ответ #3

Ответ на вопрос: Карма и фреймворк для тестирования Jasmine, Mocha, QUnit

Тезис парня, который разработал Karma, был 9X_integration-testing очень информативным в плане описания существующих 9X_unittest решений и их сравнения, и, конечно же, описания 9X_integration-tests самой Karma

https://github.com/karma-runner/karma/blob/master/thesis.pdf

Резюме: Карма - участник тестов. Его 9X_integration-tests могут использовать QUnit, Jasmine, Mocha, ... Karma 9X_ecmascript имеет преимущества по сравнению с другими 9X_vanillajs программами запуска тестов для улучшения 9X_js вашего цикла разработки TDD / BDD. Он «наблюдает» за 9X_.js файлами, поэтому, когда вы сохраняете изменение, Karma 9X_js запускает тесты и мгновенно отправляет отчеты, без 9X_vanilla-javascript переключения контекста в веб-браузер для 9X_unittest запуска теста.

Короче говоря, может быть, вопрос 9X_.js должен быть в Карме И Жасмин, или Мокко, или 9X_js в QUnit?

39
2

  • Не могли бы вы небольшое резюме, п ...