Настройка кармы с жасмин

Есть много инструментов для тестирования 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 г.