Тестирование
Тестирование поможет вам писать и поддерживать работающий Astro код. Astro поддерживает множество популярных инструментов для юнит, компонентных и end-to-end тестов включая Jest, Mocha, Jasmine, Cypress и Playwright. Вы также можете установить библиотеки тестирования, специфичные для фреймворка, такие как React Testing Library, для тестирования ваших UI-компонентов.
Фреймворки тестирования позволяют вам указывать утверждения или ожидания того, как ваш код должен вести себя в конкретных ситуациях, а затем сравнивать их с фактическим поведением вашего кода.
Vitest
Заголовок раздела VitestНативный Vite фреймворк для юнит тестирования с поддержкой ESM, TypeScript и JSX на базе esbuild.
Используйте вспомогательную функцию Astro getViteConfig()
в вашем конфигурационном файле vitest.config.ts
, чтобы настроить Vitest с учётом настроек вашего проекта Astro:
Посмотрите стартовый шаблон Astro + Vitest в GitHub.
Cypress
Заголовок раздела CypressCypress — это инструмент для тестирования фронтенда, разработанный для современного веба. Cypress позволяет писать сквозные тесты для вашего сайта Astro.
Установка
Заголовок раздела УстановкаВы можете установить Cypress с помощью выбранного вами менеджера пакетов.
Это позволит установить Cypress локально как зависимость dev для вашего проекта.
Конфигурация
Заголовок раздела КонфигурацияВ корне проекта создайте файл cypress.config.js
со следующим содержимым:
Создайте свой первый Cypress тест
Заголовок раздела Создайте свой первый Cypress тест-
Выберите страницу для тестирования. В этом примере будет протестирована страница
index.astro
, приведённая ниже. -
Создайте файл
index.cy.js
в папкеcypress/e2e
. Используйте следующий тест в файле, чтобы проверить правильность заголовка и шапки страницы.Вы можете установить [
baseUrl
: “http://localhost:4321”](https://docs.cypress.io/guides/end-to-end-testing/testing-your-app#Step-3-Configure-Cypress) в файле конфигурации
cypress.config.js, чтобы использовать
cy.visit(”/“)вместо
cy.visit(“http://localhost:4321/”)` для более удобного URL.
Запуск ваших Cypress тестов
Заголовок раздела Запуск ваших Cypress тестовCypress можно запустить из командной строки или из приложения Cypress. Приложение предоставляет визуальный интерфейс для запуска и отладки тестов.
Сначала запустите сервер разработки, чтобы Cypress мог получить доступ к вашему живому сайту.
Чтобы запустить наш тест из предыдущего примера с помощью командной строки, выполните следующую команду:
Чтобы запустить тест с помощью приложения Cypress, выполните следующую команду:
После запуска приложения Cypress выберите E2E Testing, затем выберите браузер, который будет использоваться для запуска тестов.
По окончании тестирования вы должны увидеть зелёные галочки, подтверждающие, что тест пройден:
Чтобы проверить, что ваш тест действительно работает, вы можете изменить следующую строку в файле index.astro
:
Затем запустите тест снова. Вы должны увидеть красный символ «x» в выводе, сигнализирующий о том, что тест не удался.
Следующие шаги
Заголовок раздела Следующие шагиБолее подробную информацию о Cypress можно найти по ссылкам ниже:
NightwatchJS
Заголовок раздела NightwatchJSNightwatch.js — это фреймворк для автоматизации тестирования с мощным набором инструментов для написания, запуска и отладки тестов в Интернете со встроенной поддержкой всех основных браузеров и их мобильных аналогов, а также нативных мобильных приложений.
Установка
Заголовок раздела УстановкаВы можете установить NightwatchJS в свой проект Astro, используя менеджер пакетов по вашему выбору. Выполните шаги CLI, чтобы выбрать JavaScript/TypeScript, назвать папку с тестами и выбрать, включать или нет тестирование компонентов и тестирование на мобильных браузерах.
Создайте свой первый Nightwatch тест
Заголовок раздела Создайте свой первый Nightwatch тест-
Выберите страницу для тестирования. В этом примере мы будет использовать страницу
index.astro
, приведённую ниже. -
Создайте новую папку
src/test/
и добавьте в нее следующий тестовый файл:Вы можете установить
"baseURL": "http://localhost:4321"
в файле конфигурацииnightwatch.conf.js
, чтобы использоватьbrowser.navigateTo("/")
вместоbrowser.navigateTo("http://localhost:4321/")
для более удобного URL.
Запуск ваших NightwatchJS тестов
Заголовок раздела Запуск ваших NightwatchJS тестовВы можете запустить один или несколько тестов одновременно, тестируя несколько браузеров. По умолчанию, результаты ваших тестов будут показаны в терминале. При желании можно открыть HTML Test Reporter для просмотра полного отчёта и отфильтровать результаты тестирования.
Вы можете запустить тесты с помощью расширения NightwatchJS для VS Code или используя приведённые ниже шаги CLI:
-
Чтобы запустить все тесты, введите в терминале следующую команду. В качестве опции укажите имя файла, чтобы запустить только один тест:
-
Чтобы просмотреть полный отчёт о тестировании в формате HTML, откройте его с помощью следующей команды:
-
Чтобы запустить тесты для конкретного браузера, используйте аргумент
--environment
или-e
CLI. Если у вас не установлен соответствующий браузер, Nightwatch попытается установить его для вас с помощью Selenium Manager.
Запускайте тесты с вашим производственным кодом, чтобы он был более похож на ваш актуальный, развёрнутый сайт.
Более подробную информацию о NightwatchJS можно найти по ссылкам ниже:
Playwright
Заголовок раздела PlaywrightPlaywright — фреймворк для end-to-end тестирования веб приложений. Используйте Playwright API в JavaScript или TypeScript для тестирования вашего Astro кода на всех современных движках для рендеринга включая Chromium, WebKit и Firefox.
Установка
Заголовок раздела УстановкаВы можете начать и запускать ваши тесты с помощью расширения VS Code.
В качестве альтернативы можно установить Playwright в свой Astro проект, используя пакетный менеджер по вашему выбору. Следуйте инструкциям CLI, чтобы выбрать JavaScript/TypeScript, назвать свою папку с тестами, и добавить необязательный рабочий процесс в GitHub Actions.
Создайте свой первый Playwright тест
Заголовок раздела Создайте свой первый Playwright тест-
Выберите страницу для тестирования. В этом примере мы будет использовать страницу
index.astro
, приведённую ниже. -
Создайте новую папку и добавьте следующий тестовый файл в
src/test
. Скопируйте и вставьте следующий тест в файл, чтобы убедиться в правильности мета информации на странице. Обновите значение<title>
на странице, чтобы оно соотвествовало странице, которую вы тестируете.Вы можете указать
"baseURL": "http://localhost:4321"
в конфигурационном файлеplaywright.config.ts
, чтобы использоватьpage.goto("/")
вместоpage.goto("http://localhost:4321/")
для более удобного URL.
Запуск ваших Playwright тестов
Заголовок раздела Запуск ваших Playwright тестовВы можете запустить один или несколько тестов одновременно, тестируя несколько браузеров. По умолчанию, результаты ваших тестов будут показаны в терминале. При желании можно открыть HTML Test Reporter для просмотра полного отчёта и отфильтровать результаты тестирования.
-
Для запуска теста из нашего предыдущего примера используйте команду
test
в командной строке. Дополнительно, укажите название файла чтобы запустить только один тест: -
Чтобы увидеть полный HTML Test Report, откройте его с помощью следующей команды:
Запускайте тесты с вашим производственным кодом, чтобы он был более похож на ваш актуальный, развёрнутый сайт.
Дополнительно: Запуск веб сервера разработки во время тестов
Заголовок раздела Дополнительно: Запуск веб сервера разработки во время тестовВы также можете запустить ваш сервер с помощью Playwright при запуске вашего тестового скрипта, используя опцию webServer
в файле конфигурации Playwright.
Пример конфигурации и необходимых команд при использовании npm:
-
Добавьте скрипт теста, такой как
"test:e2e": "playwright test"
в вашpackage.json
файл в корне проекта. -
В файле
playwright.config.ts
добавьте объектwebServer
и обновите значение команды наnpm run preview
. -
Запустите
npm run build
, и затемnpm run test:e2e
, чтобы запустить ваши Playwright тесты.
Более подробную информацию о Playwright можно найти по ссылкам ниже:
Learn