Почему я получаю 0 покрытие от Jest при запуске его с npm? - PullRequest
0 голосов
/ 24 марта 2019

Я пытаюсь получить номера покрытия кода для одного компонента Vue, используя Jest.

Допустим, мой компонент /var/www/html/path/to/Component.vue и соответствующий ему файл модульного теста /var/www/html/path/to/tests/unit/Component.spec.js

В моем package.json есть следующий скрипт:

"scripts": {
    "test": "jest --no-cache"
}

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

npm test -- "/var/www/html/path/to/tests/unit/Component.spec.js" "--coverage" "--collectCoverageFrom=/var/www/html/path/to/Component.vue"

Я получаю номера покрытия с нулевым кодом:

=============================== Coverage summary ===============================
Statements   : Unknown% ( 0/0 )
Branches     : Unknown% ( 0/0 )
Functions    : Unknown% ( 0/0 )
Lines        : Unknown% ( 0/0 )
================================================================================
Test Suites: 1 passed, 1 total
Tests:       3 passed, 3 total
Snapshots:   0 total
Time:        4.019s

Почему я получаю этот результат и как я могу получить реальную статистику покрытия кода от Jest через npm ?

1 Ответ

0 голосов
/ 24 марта 2019

Я нашел проблему и обходной путь для нее.

В моем package.json у меня есть конфигурация Jest, и она включает в себя:

 "jest": {
    "rootDir": "./",
 }

Это означает, что корневой каталог Jest является моим каталогом проекта npm. В моем надуманном примере это /var/www/html/path.

Чтобы получить правильные значения покрытия, я переключился с использования абсолютных путей на пути относительно вышеуказанного корневого каталога. Итак, что работает для меня сейчас:

npm test -- "to/tests/unit/Component.spec.js" "--coverage" "--collectCoverageFrom=/var/to/Component.vue"

Еще странно, что collectCoverageFrom не учитывает абсолютные пути в моем проекте.

...