Test runner (средство запуска тестов) в Jest — это инструмент, который отвечает за выполнение наборов тестов и составление отчётов о результатах. Jest включает в себя встроенное средство запуска тестов, которое может запускать наборы тестов параллельно, обеспечивая более быстрое и эффективное тестирование.
Основные функции test runner в Jest:
- Выполнение тестов: Запускает наборы тестов, определенные в вашем проекте.
- Параллельное выполнение: Запускает тесты параллельно для ускорения процесса тестирования.
- Сбор результатов: Собирает результаты выполнения тестов, включая информацию о пройденных и непройденных тестах.
- Составление отчётов: Генерирует отчёты о результатах тестирования в различных форматах, таких как JSON, HTML, и других.
- Интеграция с CI/CD: Может быть интегрирован с системами непрерывной интеграции и доставки (CI/CD) для автоматического запуска тестов.
- Настройка: Может быть настроено с помощью параметров конфигурации в файле
jest.config.jsилиpackage.json.
Пример настройки test runner в Jest:
module.exports = {
// Другие настройки Jest
testRunner: 'jest-circus/runner', // Использование другого средства запуска тестов
reporters: ['default', 'jest-junit'], // Использование дополнительных репортеров
testEnvironment: 'jsdom', // Установка тестовой среды
testMatch: ['**/__tests__/**/*.js?(x)', '**/?(*.)+(spec|test).js?(x)'], // Установка шаблонов для поиска тестов
testPathIgnorePatterns: ['/node_modules/'], // Игнорирование определенных путей
collectCoverage: true, // Сбор покрытия кода
coverageReporters: ['json', 'html'], // Форматы отчётов о покрытии
};{
"jest": {
"testRunner": "jest-circus/runner",
"reporters": ["default", "jest-junit"],
"testEnvironment": "jsdom",
"testMatch": ["**/__tests__/**/*.js?(x)", "**/?(*.)+(spec|test).js?(x)"],
"testPathIgnorePatterns": ["/node_modules/"],
"collectCoverage": true,
"coverageReporters": ["json", "html"]
}
}Пояснение:
testRunner: Указывает, какое средство запуска тестов использовать. По умолчанию используетсяjest-circus/runner.reporters: Указывает, какие репортеры использовать для составления отчётов. По умолчанию используетсяdefault, но можно добавить другие, например,jest-junit.testEnvironment: Указывает тестовую среду. По умолчанию используетсяjsdomдля браузерных тестов, но можно использоватьnodeдля серверных тестов.testMatch: Указывает шаблоны для поиска тестовых файлов.testPathIgnorePatterns: Указывает пути, которые следует игнорировать при поиске тестов.collectCoverage: Включает сбор покрытия кода.coverageReporters: Указывает форматы отчётов о покрытии.