возможно, вы можете мне помочь.Я не большой специалист по карме, так что, возможно, я что-то упустил.
Мой проект выглядит следующим образом:
- 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) сгенерировано.Когда я смотрю в покрытие, я вижу процент правильно ... Но если я взгляну на детали одного файла, то нет маркировки для покрытия и отсутствующих строк кода (зеленая и красная маркировка).А также подробный список покрытия показывает мне каждый исходный файл дважды.
Кто-нибудь знает, почему это происходит?
Текущее состояние покрытия: