Настройка кармы с жасмин
Есть много инструментов для тестирования API. Вы можете использовать популярные Postman, JMeter, RestAssured, Karate и многие другие. В этой статье мы поговорим о настройке Karma - Jasmine
Почему Карма - Жасмин? В нескольких инструментах API, которые я опробовал, Postman был наиболее удобным способом минимальной настройки для большинства тестов API. Однако есть некоторые ограничения, особенно когда я хочу настроить поток тестирования. Некоторые другие, такие как RestAssured и Karate, похоже, отлично работают для большинства скриптов. Пока я не попробую Жасмин - Карма, меня уговаривают. Да, это не новый инструмент, Jasmine существует довольно давно (с 2010 года), но считается одним из самых гибких инструментов API, которые использовали разработчики.
Karma - это инструмент, который позволяет нам запускать браузеры и запускать тесты Jasmine внутри них из командной строки. Результаты тестов также отображаются в командной строке. Karma также может отслеживать изменения в файлах разработки и автоматически повторно запускать тесты.
Karma / Jasmine очень хорошо работает для асинхронного программирования, и во многих отношениях я предпочитаю способ работы с обещаниями и асинхронностью в Jasmine, чем другие инструменты, поскольку он предлагает гибкость, такую как разработка с минимальными ограничениями.
Если вы пробовали мокко / чай, он во многом похож. Карма / Жасмин требует немного большей подготовки.
Фактически, вы можете выполнять свои сценарии как BBD в Jasmine, настраивать CI / CD и выполнять их из средства запуска тестов, такого как Karma, которое может запускать несколько выбранных вами тестовых сценариев. Это удобно, и он автоматически перезапустит тест. Он также очень легкий по сравнению с большинством инструментов API и чрезвычайно быстр во время выполнения. Как это круто !
Настройка
Убедитесь, что у вас установлены node и npm. Если нет, скачайте отсюда.
Настройка пакета npm в корневой папке. В Терминале / CMD
npm init -y
Установите Jasmine
Терминал / CMD
npm install jasmine --save-dev
Установить Karma
Терминал / CMD
npm install jasmine-core karma karma-chrome-launcher karma-jasmine karma-jasmine-html-reporter karma-spec-reporter --save-dev
Установите browserfly
Терминал / CMD
npm install --save-dev karma-browserify browserify watchify
Если у вас как у меня есть внешние модули, которые нужны, браузер в карме это не поддерживает. Вам понадобится browserfly. Это может читать ваш внешний модуль, который требует и т. Д. Const fs = require (‘fs’)
karma.conf.js
Создайте этот файл с именем «karma.conf.js» в корневой папке вашего проекта.
Добавьте эту строку в файл
// Karma configuration module.exports = function(config) { config.set({ basePath: '', frameworks: ['jasmine', 'browserify'], files: [ 'test/*.js' ], exclude: [ ], preprocessors: { 'test/*.js': [ 'browserify' ] }, plugins: [ require ('karma-browserify'), require('karma-jasmine'), require('karma-chrome-launcher'), require('karma-spec-reporter'), require('karma-jasmine-html-reporter') ], reporters: ['spec','kjhtml'], port: 9876, colors: true, logLevel: config.LOG_DISABLE, autoWatch: true, browsers: ['Chrome'], client: { clearContext: false }, singleRun: false, concurrency: Infinity, }) }
Структура папки
Это моя структура папок для тестирования API. Сценарий тестирования находится в папке «test /». Вы можете изменить его на любое имя. Просто убедитесь, что вы исправили это в karma.conf.js в файлах
files: [ 'YOUR_TEST_FOLDERNAME/*.js' ],
Выполнить тест
В корневой папке проекта
Терминал / CMD
karma start
И он будет запускать скрипты в тестовых папках!
Отчет
Это отчет из вашего браузера. У меня хром. Вы можете использовать браузер по своему усмотрению (но внесите изменения в конфигурацию кармы)
Вы можете добавить это в свой CI / CD и запустить.
Статья создана: 5 мая 2020 г.