@vue/cli-plugin-e2e-nightwatch
Плагин e2e-nightwatch для vue-cli
Внедряемые команды
vue-cli-service test:e2e
Запускает E2E тесты с помощью Nightwatch.js.
Опции:
--url запуск E2E-тестов по указанному URL, вместо авто-запуска сервера --config использовать пользовательский файл конфигурации nightwatch (перезаписывает внутренние настройки) --headless использовать chrome или firefox в headless-режиме --parallel использовать параллельный режим через test workers (доступно только в chromedriver) --use-selenium использовать сервер Selenium вместо chromedriver или geckodriver -e, --env окружения браузеров через запятую для тестирования (по умолчанию: chrome) -t, --test запустить тест по указанному пути к файлу -f, --filter glob для фильтрации тестов по имени файла
Поддерживаются все опции Nightwatch CLI. Например:
--verbose
,--retries
и т.д.
Структура проекта
При установке плагина генерируется следующая структура каталогов. В ней будут примеры для большинства концептов тестирования доступных в Nightwatch.
tests/e2e/
├── custom-assertions/
| └── elementCount.js
├── custom-commands/
| ├── customExecute.js
| ├── openHomepage.js
| └── openHomepageClass.js
├── page-objects/
| └── homepage.js
├── specs/
| ├── test.js
| └── test-with-pageobjects.js
└── globals.js
specs
Основное место расположения тестов. Может содержать вложенные каталоги, которые можно выбирать при запуске с помощью аргумента --group
. Подробнее.
custom-assertions
Расположенные здесь файлы будут автоматически загружаться Nightwatch и добавляться в API .assert
и .verify
для расширения встроенных методов утверждений Nightwatch. Подробнее в документации по созданию пользовательских утверждений.
custom-commands
Расположенные здесь файлы будут автоматически загружаться Nightwatch и добавляться в API объекта browser
для расширения встроенных команд Nightwatch. Подробнее в документации по созданию пользовательских команд.
page objects
Работа с объектами страниц — популярная методология в E2E-тестировании UI. Расположенные здесь файлы будут автоматически добавляться в API .page
, при этом имя файла определит имя объекта страницы. Подробнее в документации по работе с объектами страниц.
globals.js
Файл внешних глобальных переменных, который может содержать глобальные свойства или хуки. Подробнее в документации по глобальным свойствам тестов.
Установка в уже созданный проект
vue add e2e-nightwatch
Конфигурация
Nightwatch предварительно сконфигурирован для запуска в Chrome по умолчанию. Доступен также Firefox через --env firefox
. При необходимости запускать end-to-end тесты в других браузерах (например, Safari, Microsoft Edge), нужно добавить nightwatch.conf.js
или nightwatch.json
в корневой каталог проекта для настройки дополнительных браузеров. Конфигурация будет объединена во внутреннюю конфигурацию Nightwatch.
При необходимости можно полностью заменить внутреннюю конфигурацию собственной с помощью опции --config
.
Обратитесь к документации Nightwatch для информации о параметрах конфигурации и как устанавливать драйверы браузеров.
Запуск тестов
По умолчанию, все тесты внутри каталога specs
будут запускаться с использованием Chrome. Если необходимо запустить end-to-end тесты в headless-режиме в Chrome (или Firefox), укажите аргумент --headless
.
$ vue-cli-service test:e2e
Запуск одного теста
Для запуска одного теста укажите путь к файлу. Например:
$ vue-cli-service test:e2e tests/e2e/specs/test.js
Пропустить автоматический запуск сервера разработки
Если сервер разработки уже запущен и необходимо пропустить автоматический запуск, укажите аргумент --url
:
$ vue-cli-service test:e2e --url http://localhost:8080/
Запуск тестов в Firefox
По умолчанию также поддерживается запуск тестов в Firefox. Выполните следующую команду (опционально можно добавить --headless
для запуска Firefox в безголовом режиме):
$ vue-cli-service test:e2e --env firefox [--headless]
Запуск тестов в Firefox и Chrome одновременно
Можно запускать тесты одновременно в обоих браузерах, определяя требуемые тестовые окружения через запятую (",") — не используя пробелы.
$ vue-cli-service test:e2e --env firefox,chrome [--headless]
Запуск тестов в параллельном режиме
Для значительного увеличения скорости тестирования можно включить параллельный запуск тестов если имеются в наличии несколько тестовых наборов. Согласование осуществляется на файловом уровне и автоматически распределяется по доступным ядрам процессора.
На данный момент возможность доступна только в Chromedriver. Подробнее о режиме параллельной работы можно прочитать в документации Nightwatch.
$ vue-cli-service test:e2e --parallel
Запуск тестов с Selenium
Поскольку с версии v4
автономный сервер Selenium больше не включён в этот плагин, да и в большинстве случаев работа с Selenium не требуется с версии Nightwatch v1.0.
Но возможность использования сервера Selenium по-прежнему имеется, для этого необходимо выполнить следующие шаги:
1. Установите NPM-пакет selenium-server
:
$ npm install selenium-server --save-dev
2. Запустите команду с аргументом --use-selenium
:
$ vue-cli-service test:e2e --use-selenium