Проблема в освещении с помощью Karma / Webpack / Стамбул - PullRequest
0 голосов
/ 17 декабря 2018

возможно, вы можете мне помочь.Я не большой специалист по карме, так что, возможно, я что-то упустил.

Мой проект выглядит следующим образом:

  • js / libs -> Сохранены все нужные мне библиотеки
  • js / src / [ComponentName] -> Сохранены всепользовательские скрипты в собственных папках компонентов

В папках компонентов находятся директивы, контроллеры от AngularJS, а также модульные тесты (сохраняются как xxx.spec.js) для них.

карма.conf.js (сохранен в корне проекта)

config.set({
    frameworks: ['jasmine'],
    webpack: webpackConfig, // See below
    files: [
        'js/index.js',
        'js/src/**/*.spec.js'
    ],
    preprocessors: {
        'js/index.js': ['webpack', 'sourcemap'],
    },

    reporters: ['mocha', 'coverage-istanbul'],
    coverageIstanbulReporter: {
        reports: ['html', 'text-summary' ],
        fixWebpackSourcePaths: true,
        dir: path.join(__dirname, 'coverage'),
    },
    browsers: ['PhantomJS'],
    singleRun: true,
});

webpack.config.js (сохранен в корне проекта)

{
    mode: 'development',
    entry: '',
    output: {
        filename: '[name].js',
        chunkFilename: '[name].js',
        path: path.resolve(__dirname, 'build')
    },
    module: {
       rules: [
            {
                exclude: /node_modules/,
                loader: 'babel-loader',
                options: {presets: ['env']}
            },
            {
                use: {loader: 'istanbul-instrumenter-loader'},
                exclude: [
                    /node_modules|index\.js|\.spec\.js$/,
                    path.resolve(__dirname, 'js/lib')
                ],
                enforce: 'post'
            }
        ]
    },
    devtool: 'inline-source-map'
}

В общем:

У меня есть исходная папка со всеми JS-файлами (включая юнит-тесты)

У меня есть процесс сборки, который встраивает необходимые файлы JS в путь сборки

У меня есть файлы index.jsдля этого потребовались исходные файлы

И у меня есть покрытие в отдельной подпапке для юнит-тестов.

Юнит-тесты выполнены успешно, и покрытие (istanbul HTML) сгенерировано.Когда я смотрю в покрытие, я вижу процент правильно ... Но если я взгляну на детали одного файла, то нет маркировки для покрытия и отсутствующих строк кода (зеленая и красная маркировка).А также подробный список покрытия показывает мне каждый исходный файл дважды.

Кто-нибудь знает, почему это происходит?

Текущее состояние покрытия:

enter image description here

...