Несколько вопросов:
- Как карма и система тестирования X (Jasmine, Mocha, QUnit) связаны друг с другом?
- Какова эквивалентная структура в мире Java? Я предполагаю, что Jasmine, Mocha, QUnit равны jUnit / TestNG. Как насчет кармы?
- Могу ли я запустить тестирование фреймворка X (например, Jasmine) без кармы?
- Карма для модульного тестирования или интеграции / e2e теста? Эта ссылка показывает для модульного теста, однако это относится к тесту e2e.
javascript
unit-testing
integration-testing
Ли Чи Киам
источник
источник
Ответы:
Карма - браузерный тестовый бегун.
Идея заключается в том, что в браузерах изначально отсутствует концепция загрузки тестовых файлов, их запуска и составления отчетов о результатах. Что карма делает (примерно):
Глядя на каждую часть:
(1) Эти файлы будут вашими настоящими js-файлами; Вы скажете карме, как их загрузить. Если вы используете requirejs, есть плагин karma и необходим некоторый конфиг.
(2) Эти тесты могут быть написаны на различных платформах тестирования Javascript (Jasmine, QUnit, Mocha); это код JS, который запускается в браузере.
(3) Пользовательская веб-страница будет немного отличаться для каждой среды тестирования; Вот почему у кармы есть плагины для разных фреймворков.
(4) Карма может запускать страницу во многих браузерах (FF, Chrome или безголовых браузерах, таких как PhantomJs.)
(5) Отчетность перед кармой, опять же, зависит от фреймворка и касается плагинов кармы.
Итак, чтобы ответить на ваши вопросы:
источник
Один короткий способ понять разницу:
Люди, тестирующие с простым Jasmine / Mocha, скорее всего, запускают весь код на виртуальной машине Node.
Добавление Karma в набор (поверх существующего фреймворка) запустит ваш набор тестов с движком других браузеров.
Делая это, вы получаете небольшие дополнительные возможности, которые вы получаете в среде браузера. Будет проще тестировать код, связанный с DOM, но вы также будете отказываться от дополнительных ресурсов, предоставляемых движком Node (например, доступ к файловой системе / оболочке)
источник
Тезис о парне, который разработал Карму, был очень информативным в описании существующих решений и их сравнении, и, конечно, в описании самой Кармы.
https://github.com/karma-runner/karma/blob/master/thesis.pdf
Резюме: Карма - бегун-испытатель. Он может быть использован QUnit, Jasmine, Mocha, ... Karma имеет преимущества перед другими участниками тестирования для улучшения вашего цикла разработки TDD / BDD. Он «просматривает» файлы, поэтому, когда вы сохраняете изменение, Karma запускает тесты и мгновенно отчитывается, не переключая контекст в веб-браузер для запуска теста.
Короче, возможно вопрос должен быть карма и жасмин или мокко или квнит?
источник