Покрытие кода Неизвестно с использованием jest 15.1.1

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

----------|----------|----------|----------|----------|----------------|
File      |  % Stmts | % Branch |  % Funcs |  % Lines |Uncovered Lines |
----------|----------|----------|----------|----------|----------------|
All files |  Unknown |  Unknown |  Unknown |  Unknown |                |
----------|----------|----------|----------|----------|----------------|

Мой конфиг содержит следующее:

"collectCoverageFrom": [
    "<rootDir>/app_modules/",
    "<rootDir>/src/"
],    

Я также пробовал без завершающего /, с **/*.js и только с завершающим *.js, все безрезультатно.

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

Так в чем же заключается волшебство получения более точной информации о покрытии?

Лучшие документы, которые мне удалось найти, взяты из этого Github PR: https://github.com/facebook/jest/pull/1349/files


В итоге я сделал:

"collectCoverageFrom": [
    "**/*.js",
    "!webpack.config.js"
],

который работал только потому, что это часть конфигурации по умолчанию

"testPathIgnorePatterns": [
    "/node_modules/"
],

Тем не менее, это добавляет огромное количество времени к тестовому прогону.


person boatcoder    schedule 18.09.2016    source источник


Ответы (3)


Посмотрите внимательно на свою ссылку:

collectCoverageFrom: {
  description: wrap(
    'relative to <rootDir> glob pattern matching the files that coverage ' +
      'info needs to be collected from.'
      ...

Вы не можете использовать <rootDir>. Пытаться:

collectCoverageFrom: [
    "**/app_modules/**",
    "**/src/**"
],
person robi24    schedule 19.09.2016

Это просто другая информация, которую нужно добавить к вашему отредактированному вопросу: вместо объявления второго массива:

"testPathIgnorePatterns": [
    "/node_modules/"
],

Вы можете просто продолжать использовать свой массив collectCoverageFrom, добавив ! перед каталогом, о котором вы не хотите собирать информацию о покрытии:

collectCoverageFrom: [
    "!**/node_modules/**"
],
person Begueradj    schedule 08.02.2019

вы можете просто принудительно отключить покрытие с помощью опции forceCoverageMatch : ['/.ts','/.js']

person Punix81    schedule 23.08.2019