Я начал рассматривать тестирование с помощью Jest и Puppeteer после того, как использовал Puppeteer для новой функции в Talaia.io, поэтому я создал репозиторий github, содержащий простой каркас для веб-тестирования.
Jest: платформа тестирования от Facebook. Jest предоставляет платформу для автоматизированного тестирования вместе с базовой библиотекой утверждений (Expect).
Puppeteer: библиотека Node.js для управления безголовым Chrome. Он довольно новый, но сейчас самое время проверить его и посмотреть, как он может вписаться в ваш рабочий процесс.
Альтернативы
У ребят из SmoothCode есть проект, который действует как обертка для использования шуток и кукловодов, но, поскольку это будет среднесрочный проект в моей компании, я предпочел взять все под свой контроль, поэтому я решил не использовать. Также у этого проекта есть кривая обучения, но у нас нет времени на преодоление.
Проект
Структура проекта достаточно проста:
Я решил отделить тесты конечных точек API от тестирования пользовательского интерфейса, чтобы мы могли просто запускать одну из частей, используя параметр конфигурации jest moduleFileExtensions.
Этот проект имеет менее минимальный код и библиотеки для работы с простыми тестами. Если вы хотите добавить больше модулей, вам нужно всего лишь добавить строку в jest.config.js и
module.exports = { name: 'jest-puppeteer-tests', rootDir: './', projects: [ '<rootDir>/config/jest/web.js', '<rootDir>/config/jest/api.js' ] }; module.exports = { displayName: 'api', moduleFileExtensions: ['js', 'json'], rootDir: '../../', testEnvironment: 'jsdom', testMatch: ['**/*.api.js'] };
Исполнение
Чтобы выполнить все тесты, просто введите:
npm test
Чтобы выполнить только тесты API:
npm test -- api
Чтобы выполнить только веб-тесты:
npm test -- web
После запуска всех тестов вы увидите: