Полное руководство по проверке тестового покрытия с помощью Jest: методы и примеры

Чтобы проверить покрытие тестами с помощью Jest, вы можете воспользоваться несколькими способами. Ниже я приведу несколько примеров с фрагментами кода.

Метод 1: использование флага --coverage
Jest предоставляет встроенный генератор отчетов о покрытии, который вы можете использовать для создания отчета о покрытии. Запустив Jest с флагом --coverage, вы можете создать отчет о покрытии, включающий информацию о том, какие части вашего кода охвачены вашими тестами.

Вот пример команды, которую вы можете использовать в своем терминале:

jest --coverage

Выполнение этой команды приведет к выполнению ваших тестов и созданию отчета о покрытии в терминале, отображающего сводную информацию о покрытии для каждого протестированного файла.

Метод 2: использование параметра конфигурации collectCoverage.
Jest также позволяет вам настроить поведение тестового покрытия с помощью параметра collectCoverageв вашем jest.config.jsфайл. Вы можете указать, какие файлы или шаблоны следует включить или исключить из отчета о покрытии.

Вот пример файла jest.config.js:

module.exports = {
  // Other Jest configuration options...
  collectCoverage: true,
  collectCoverageFrom: [
    'src//*.js', // Include all JavaScript files in the "src" directory
    '!src//*.spec.js', // Exclude test files
    '!src/index.js' // Exclude the entry file
  ],
  coverageDirectory: 'coverage',
  coverageReporters: ['text', 'html']
};

В этом примере для collectCoverageустановлено значение true, что позволяет собирать данные о покрытии. collectCoverageFromопределяет файлы, которые необходимо включить/исключить из отчета о покрытии. coverageDirectoryуказывает выходной каталог отчета о покрытии, а coverageReportersопределяет формат отчета (в данном случае как текст, так и HTML).

Метод 3. Использование пользовательских пороговых значений покрытия.
Jest позволяет вам определить пользовательские пороговые значения покрытия, чтобы обеспечить соблюдение определенных требований к покрытию для вашей кодовой базы. Вы можете установить эти пороговые значения в своем файле jest.config.js.

Вот пример определения порогов покрытия:

module.exports = {
  // Other Jest configuration options...
  coverageThreshold: {
    global: {
      branches: 80,
      functions: 90,
      lines: 90,
      statements: 90
    }
  }
};

В этом примере пороговые значения покрытия установлены на уровне 80 % для ветвей, 90 % для функций, строк и операторов. Jest не пройдет тесты, если покрытие упадет ниже этих пороговых значений.

Не стесняйтесь подробно рассказать об этих методах и примерах в статье своего блога, чтобы предоставить более подробную информацию и идеи.