Инструменты модульного тестирования для веб-приложений
- Предпосылки
- Настройка юнит-тестирования
- Конфигурирование конвейера
- Подтверждение настройки
- Онлайн обучение
Тестирование ускоряет разработку
Модульное тестирование помогает разработчикам убедиться, что их код соответствует заранее заданным требованиям, и найти любые регрессии при обновлении кода.
В идеале написание и запуск модульных тестов происходит на самых ранних этапах разработки, иногда до того, как будет написан какой-либо код. Ваша работа по разработке может быть замедлена, поскольку вы создаете основной набор тестовых случаев. Тем не менее, долгосрочные преимущества в конечном итоге позволяют ускорить разработку, поскольку вам не нужно беспокоиться о регрессах при добавлении новых функций.
Все преимущества модульного тестирования достигаются, когда его можно автоматизировать, чтобы вы могли сосредоточиться на разработке. Чтобы начать модульное тестирование, сконфигурируйте модульное тестирование как тестовое задание в конвейере в службе непрерывной доставки IBM Cloud ™. Тестовое задание может запускать модульные тесты для вашего веб-приложения или мобильного приложения в рамках процесса непрерывной доставки. Эти тесты обеспечивают ценное управление потоком для ваших проектов, выступая в качестве шлюзов для предотвращения развертывания плохого кода.
Предпосылки
Учетная запись IBM Cloud, для которой требуется IBMid. Если у вас нет IBMid, вы можете создать его при регистрации.
Набор инструментов, содержащий конвейер доставки. Наборы инструментов являются частью службы непрерывной доставки. Вы можете создать простой набор инструментов Cloud Foundry, который включает в себя Delivery Pipeline, выполнив этот урок ,
Один или несколько инструментов модульного тестирования. Надлежащее модульное тестирование веб-приложений состоит из двух частей: внешнего, клиентского и внутреннего, серверного. Инструменты, используемые для каждой части, отличаются по функциональности, но они работают вместе, чтобы правильно протестировать ваш код. Подробные сведения о нескольких инструментах модульного тестирования, в том числе о нескольких, упомянутых в инструкциях в этой статье, см. В разделе Связанные инструменты ,
Настройка юнит-тестирования
Создание юнит-теста
Для приложений, созданных с использованием JavaScript и Node.js, вы можете проводить как внешнее, так и внутреннее тестирование, используя Mocha в качестве среды тестирования и Karma в качестве тестера JavaScript. Вы также можете использовать PhantomJS для внешнего тестирования. В этих рамках Chai является библиотекой утверждений, а Sinon предоставляет заглушки, шпионы и издевательства. Общее тестовое покрытие отслеживается Стамбулом.
Для приложений Node.js вы можете создать простой модульный тест, используя Mocha и gulp:
- В корневом каталоге вашего приложения создайте файл и назовите его gulpfile.js. В файл включите следующее содержимое:
var gulp = require ('gulp'); var mocha = require ('gulp-mocha'); gulp.task ('mocha-test', function () {return gulp.src ('test / *. js', {read: false}) .pipe (mocha ({globals: ['Ожидаемо]], время ожидания: 3000 , ignoreLeaks: true, пользовательский интерфейс: 'bdd', цвета: true, reporter: 'mocha-jenkins-reporter', reporterOptions: {junit_report_name: 'Mocha Unit Tests', junit_report_path: 'test / mocha-report.xml', junit_report_stack: 1}}));});
Вы можете использовать Eclipse Orion Web IDE для изменения кода.
Содержимое файла gulpfile.js определяет задачу gulp с именем mocha-test, которая вызывается позже из конвейера. Задача gulp содержит подробную информацию, такую как местоположение запускаемых модульных тестов, test / *. Js, а также имя и местоположение файла, который будет содержать результаты теста, test / mocha-report.xml. Для получения дополнительной информации о том, как настроить задачу gulp, см. глоточная документация ,
Создайте каталог с именем test, где вы сможете хранить все модульные тесты вашего приложения.
В каталоге test создайте файл модульного теста с именем mocha-spec.js. В файл включите следующее содержимое:
var rewire = require ('rewire'); var chai = require ('chai'); varpect = chai.expect; chai.config.includeStack = false; Описание («Мой набор тестов», function () {beforeEach (function () {}); afterEach (function () {}); it («Тестовый набор», функция (выполнено) {Ожидайте (true) .to.be .equal (true); done ();});});
Для получения дополнительной информации о создании модульных тестов Mocha см. Проект мокко ,
- На левой боковой панели щелкните значок Git . Зафиксируйте и отправьте изменения в хранилище.
Конфигурирование конвейера
На странице Обзор цепочки инструментов щелкните Конвейер доставки, чтобы получить доступ к конвейеру для вашего приложения.
Убедитесь, что ваш конвейер имеет этап сборки.
На этапе сборки щелкните значок « Stage Configuration» и нажмите « Configure Stage» .
Перейдите на вкладку JOBS и нажмите ADD JOB . Для типа работы выберите Тест .
Назовите новую работу Unit Tests. Убедитесь, что тип тестера прост.
В окне Test Command включите команды для выбранной вами среды тестирования.
а. Перечислите все компоненты модульного тестирования для установки.
npm установить mocha --save-dev
npm установить mocha-jenkins-reporter --save-dev
npm установить rewire --save-dev
npm install chai --save-dev
npm установить gulp --save-dev
npm install [email protected] --save-devКроме того, вы можете включить пакеты для установки в файл package.json вашего приложения в devDependencies:
"devDependencies": {"chai": "^ 3.3.0", "gulp": "^ 3.9.0", "gulp-mocha": "^ 3.0.1", "mocha": "^ 2.3.3" , "mocha-jenkins-reporter": "^ 0.1.9", "rewire": "^ 2.3.4"}
Вы можете заменить команду npm install в окне Test Command.
б. Вызовите задачу gulp для модульного теста, который вы хотите запустить. узел ./node_modules/gulp/bin/gulp mocha-test
Установите флажок Включить тестовый отчет .
Укажите имя для файла отчета о тестировании или используйте предоставленное по умолчанию.
Примечание. В зависимости от конфигурации вашей инфраструктуры тестирования, имя этого файла может совпадать с тем, которое указано в ваших тестовых примерах. Поскольку это значение было определено в модульном тесте, включите значение test / mocha-report.xml.
Нажмите Сохранить, чтобы вернуться к конвейеру.
Подтверждение настройки
На этапе сборки щелкните значок Run Stage, чтобы повторно запустить этап с использованием новых конфигураций модульного тестирования.
Убедитесь, что этап сборки проходит успешно. Если этап завершается неудачей, проверьте журналы этапов сборки, внесите необходимые исправления, а затем снова запустите этап.
Чтобы просмотреть результаты ваших модульных тестов, на этапе сборки нажмите Просмотр журналов и истории .
Выберите модульные тесты и перейдите на вкладку ТЕСТЫ, чтобы просмотреть все настроенные модульные тесты.
Нажмите на юнит-тест, чтобы просмотреть его результаты.
глоток это бегунок задач JavaScript, который вы можете использовать для автоматизации задач в процессе разработки.
кофе мокко это многофункциональный тестовый фреймворк JavaScript, который запускается на Node.js в браузере. Мокко используется для асинхронного тестирования; его тесты выполняются последовательно, чтобы обеспечить гибкую и точную отчетность, в то время как он сопоставляет невыясненные исключения с правильными тестовыми примерами.
Карма запускает веб-серверы HTTP, которые могут запускать код JavaScript против тестового кода в любом количестве реальных браузеров. Карма проверяет результаты каждого теста для каждого браузера и отображает результаты с помощью командной строки, чтобы вы могли увидеть, какие браузеры и тесты пройдены или не пройдены.
PhantomJS полезен для автономного тестирования веб-приложений. Этот инструмент подходит для общего тестирования на основе командной строки в хуке предварительной фиксации или как часть системы непрерывной интеграции.
Chai является библиотекой утверждений для разработки на основе поведения (BDD) и разработки на основе тестирования (TDD) для узла и браузера. Вы можете связать Chai с любой средой тестирования JavaScript. Чай имеет несколько интерфейсов; Вы можете выбрать тот, который работает для вас. Стили BDD с поддержкой цепочек обеспечивают выразительный язык и читаемый стиль, а стиль TDD обеспечивает более классический вид. Вы можете использовать плагины для расширения утверждений Чая в новых контекстах, таких как интеграция поставщиков и построение объектов. Вы можете создавать подключаемые модули для совместного использования с сообществом или использовать шаблон подключаемых модулей, чтобы гарантировать, что тесты не будут повторяться или дублироваться.
заново электрифицировать является инжектором зависимостей, который изменяет поведение модуля, чтобы можно было получить лучшие результаты модульного теста. С помощью Rewire вы можете внедрять макеты, манипулировать закрытыми переменными и переопределять переменные в модуле.
Sinon.js предоставляет автономные тестовые шпионы, заглушки и макеты для JavaScript. Тестовые шпионы - это функции, которые записывают аргументы, возвращаемые значения и выброшенные значения исключений (если таковые имеются) для всех вызовов. Тестовый шпион может быть анонимной функцией или может обернуть функцию. Тестовые заглушки - это функции (шпионы) с предварительно запрограммированным поведением. Поддельные и ложные ожидания - это фальшивые методы, такие как шпионы, с заранее запрограммированным поведением, такими как заглушки и запрограммированные ожидания. Поскольку нет никаких зависимостей для использования Sinon.js, он может работать с любой структурой модульного тестирования.
Стамбул плагин покрытия модульного теста для gulp. Стамбул может работать с любой структурой модульного тестирования Node.js для отслеживания покрытия кода.
Онлайн обучение
Станьте адвокатским курсом «Гаражный метод для облака»
Что дальше
Похожие
Настройка параметров конфиденциальности VK.comВ рамках нашей серии статей о конфиденциальности мы рассмотрим ВКонтакте (aka VK.com), российскую социальную сеть, чтобы продемонстрировать, как они смотрят на конфиденциальность по сравнению с Google и Facebook. Социальные сети являются желанным пирогом для мошенников и чудаков всех видов, и vk.com не исключение. Преступники придумывают множество творческих способов украсть учетные данные пользователя: от обычных взломов и Есть вещи, о которых нельзя шутить. Ценности, которые известны нам с детства. Святость, которую нельзя использов...
Есть вещи, о которых нельзя шутить. Ценности, которые известны нам с детства. Святость, которую нельзя использовать в злых целях. Пицца, например. Google решил использовать самые положительные ассоциации с этим блюдом, создав ложную марку пиццы «Доктор Форк». В общей сложности 33 объявления были созданы и затем «загружены» на YouTube, где они получили 20 миллионов просмотров. Коллектив Google Unskippable Labs объяснил, что есть некоторые формы продвижения, которых рекламодатели ИСПРАВЛЕНИЕ: Чувствительность мыши в World of Warcraft от Bas Wijdenes
... настройки мыши в Windows на предмет чувствительности мыши. Существует также 4-й вариант, но это относится только к Razer пользователи мыши среди нас. Вариант 1 - Давайте посмотрим на внутриигровые настройки аппаратного курсора и FPS. Мы собираемся включить и выключить некоторые настройки. Проверьте хорошо, если это решает чувствительность мыши. Если это не так, то лучше сбросить настройки по умолчанию Хороший и плохой инструмент автоматизации тестирования селена
Время чтения: 10 минут Кто не любит глубокую историю именования? В начале 2000-х годов компания Mercury Interactive управляла миром автоматизации тестирования с помощью своего инструмента Astra Quick Test. Это был не самый лучший продукт, который можно себе представить. Например, вы могли запускать тесты только на компьютерах с Windows, поддерживалось только небольшое количество версий браузера, и вам приходилось использовать один язык для написания скриптов - VBScript. Когда разработчик Взлом Бундестага: возможные предпосылки и методы защиты
Здесь, в Univention, мы, конечно, также обеспокоены нападением на ИТ-инфраструктуру парламента Германии, более известную как «взлом Бундестага». Напомним: кажется, что там были некоторые поддельные электронные письма, в том числе ссылки на