CodeceptJS — современный end2end-тест для NodeJS
CodeceptJS — фреймворк, который позволяет описывать тесты на DSL высокого уровня. При этом сами тесты будут выполняться одной из популярных библиотек на выбор тестировщика: Protractor, webdriverio, NightmareJS. Как правило, в большинстве случаев вам не придётся учить синтаксис вышеупомянутых библиотек — достаточно будет применить готовый универсальный API. Давайте рассмотрим, как выглядит простейший тест в CodeceptJS:
CodeceptJS позволяет QA-инженеру писать линейные сценарии для тестов, для чего применяется глобальная цепочка промисов — в неё добавляют новые и новые команды. В результате CodeceptJS позволяет без проблем реализовать те же PageObjects:
В результате мы выполнили перенос команд из предыдущего примера в отдельно созданный класс.
Как видите, всё получилось весьма читабельно: команды описаны как действия от первого лица, а селекторы почти не перегружают код технической информацией, делая это минимально.
Как уже было сказано, в конфигурации можно без проблем выбрать движок для выполнения тестов. Если интересует стабильный webdriver API, вам подойдёт WebDriverIO, если предпочитаете Angular, включите Protractor, если желаете ускорить тесты раза так в три, отказавшись от webdriver и запуская приложение внутри Electron, обратите внимание на Nightmare.
Таким образом, CodeceptJS даёт возможность писать свои расширения, дополняя текущую функциональность. Да, придётся слегка поработать с низкоуровневым API того же webdriverio, однако если вы реализуете требуемый функционал, вы без проблем сможете применять его в своих сценариях.
Какие ещё есть плюшки в CodeceptJS: • пошаговый вывод прохождения тестов; • наличие режима интерактивной паузы; • генераторы тестов, helpers, pageobjects.
Установка
Установить CodeceptJS совсем несложно:
[sudo] npm install -g codeceptjs codeceptjs init
Останется выбрать один из драйверов для выполнения тестов и установить пакеты для них. В этом вам поможет команда codeceptjs init, которая ещё и подскажет, как писать первый тест.
Более подробную информацию о CodeceptJS вы можете получить на курсе «Автоматизация тестирования на JavaScript» в OTUS.
Источники: • https://automated-testing.info/t/codeceptjs-priemochnoe-testirovanie-dlya-nodejs/8578/2; • https://habr.com/ru/post/319656/.