Простой и эффективный подход к автоматизации тестирования с использованием Mocha Framework
Mocha - это многофункциональная среда тестирования JavaScript, работающая на Node.js и в браузере, что делает асинхронное тестирование простым и увлекательным. Тесты Mocha запускаются последовательно, что позволяет создавать гибкие и точные отчеты, сопоставляя неперехваченные исключения с правильными тестовыми примерами. Размещено на GitHub.
Начнем с понимания того, как быстро настроить фреймворк мокко и выполнить образец теста. Убедитесь, что node.js уже установлен.
Откройте свой терминал и начните с установки пакетов mocha и chai (библиотеки утверждений).
mkdir programmatic-mocha-framework && cd programmatic-mocha-framework npm init -y npm i mocha chai //setup first test mkdir test touch test/sample-test.js
Откройте файл sample-test.js и вставьте код ниже:
Обновите scripts
в package.json
.
"scripts": { "test": "mocha" },
Выполните тесты, запустив npm run test
, и отчет терминала будет сгенерирован со всеми 10 пройденными тестами, поскольку числа 0–9 меньше 10.
Теперь давайте посмотрим, как мы можем написать тот же тест программным способом.
Шаг 1
Создайте новый mocha-setup.js
в папке lib
, запустив mkdir lib && touch lib/mocha-setup.js
. Как следует из названия, он будет содержать базовую настройку, необходимую для тестов мокко. Этот файл предоставляет возможность создавать новые наборы и тесты и предоставляет функцию для их выполнения.
Перед копированием приведенного ниже кода в файл тестовой установки установите два пакета, необходимых для базовой настройки npm i moment-timezone mochawesome
Шаг 2
Пришло время создать актуальный набор тестов и тесты. Во-первых, давайте создадим новый файл для размещения этих примеров тестов, запустив mkdir programmatic && touch programmatic/sample-tests.js
. В этом файле мы:
- Добавьте те же тесты, которые у нас были в каталоге тестов, но программным способом
- Добавьте еще один набор тестов в родительский набор и добавьте тест в дочерний набор
- Добавить тестовый каталог в родительский набор
Скопируйте приведенный ниже код в sample-tests.js
Шаг 3
После того, как все наборы тестов созданы, пора посмотреть, как их выполнять.
Создайте новый файл execute-test.js
и скопируйте приведенный ниже код:
Шаг 4
Обновите package.json
, заменив scripts
приведенным ниже кодом
"scripts": { "test": "node execute-tests.js" },
Давайте выполним тесты, выполнив ту же команду npm run test
. Это автоматически создаст новую папку с именем execution-report
, а подпапки будут созданы на основе текущей даты и времени. Mochawesome html и json будут доступны в папке currentime
. Я выполнил тесты несколько раз, поэтому есть несколько папок с отметками времени. Весь ваш каталог будет выглядеть так:
Откройте отчет mochawesome.html, созданный в папке с последними отметками времени 22:03:03
(имя будет меняться в зависимости от времени выполнения).
Вот и все ... не стесняйтесь добавлять дополнительные тесты в programmatic/sample-tests.js
Преимущества
Некоторые из преимуществ, которые я обнаружил, работая над этим подходом:
- Абстракция тестов от реального фреймворка
- Централизованно управляемый дизайн фреймворка и возможность файлов тестов для каждой инициативы / проекта
- Возможность динамически управлять данными тестов - это одно из ключевых преимуществ перед традиционным мокко. Таким образом, вы можете динамически считывать данные из файлов csv и выполнять итерацию для создания того же количества тестов, а не указывать жестко закодированное значение в коде.
- Смена места в одном месте для всего фреймворка, используемого разными командами
- Я использовал этот подход для загрузки файлов в корзину S3 и отправки уведомления по электронной почте о сбое, подняв lib / mocha-setup.js и передав имя инициативы в качестве параметра, чтобы различать файлы отчетов.
Для получения дополнительной информации перейдите в « Программное использование Mocha ».
Код доступен на моем git здесь. Не стесняйтесь обращаться ко мне в случае каких-либо отзывов.
Примечание от JavaScript In Plain English: Мы всегда заинтересованы в содействии продвижению качественного контента. Если у вас есть статья, которую вы хотели бы отправить в JavaScript In Plain English, отправьте нам электронное письмо по адресу [email protected] с вашим именем пользователя Medium, и мы добавим вас в качестве автора.