Почему модульные тесты Karma с jasmine для проекта машинописного текста Node показывают покрытие, включая зависимость? - PullRequest
0 голосов
/ 19 июня 2020

Как говорит испытуемый, покрытие кода нашего проекта включает в себя зависимость узла. Однако обратите внимание, что исходный код этой npm зависимости также является частью проекта, поскольку мы разрабатываем и публикуем sh его. Вот структура проекта:

  • root
    • main_project
      • karma.conf.ts
      • sr c и другие файлы для тестирования и для которых должно быть создано покрытие
      • test
    • side_project, который упакован и опубликован в npm и используется в нескольких проектах, включая этот
      • sr c et c.

Итак, даже если моя конфигурация кармы находится в main_project (sr c и src / * в изображении), которую я хочу протестировать и создать покрытие, karma включает side_project (petreol-api-wrapper на изображении), а также в покрытие, например: screenshot of karma coverage

Вот моя соответствующая конфигурация кармы:

const testRecursivePath = "test/*Test.ts";
const srcOriginalRecursivePath = "src/**/*.ts";
frameworks: ["jasmine"],
reporters: [
    "progress",
    "junit",
    "coverage-istanbul"
],
files: [
    testRecursivePath,
    {
        pattern: srcOriginalRecursivePath,
        included: false,
        served: true
    }
],
preprocessors: {
    [testRecursivePath]: ["webpack", "coverage"]
},

Может ли кто-нибудь помочь мне с этим?

1 Ответ

0 голосов
/ 21 июня 2020

Есть возможность исключить файлы из karma.conf. Например, конфигурация ниже будет исключать все ts файлы внутри node_modules папки. Возможно, вам придется работать с относительным путем, который я указал в примере ниже. Вы можете игнорировать все, используя **.*

exclude: [
        "node_modules/**/*.ts"
]

, которое будет использоваться как

const testRecursivePath = "test/*Test.ts";
const srcOriginalRecursivePath = "src/**/*.ts";
frameworks: ["jasmine"],
reporters: [
    "progress",
    "junit",
    "coverage-istanbul"
],
files: [
    testRecursivePath,
    {
        pattern: srcOriginalRecursivePath,
        included: false,
        served: true
    }
],
exclude: [
        "node_modules/**/*.ts"
]
preprocessors: {
    [testRecursivePath]: ["webpack", "coverage"]
},
...