Я использую webpack для запуска моих тестов с проверкой покрытия.
"test-with-coverage": "cross-env NODE_ENV=test nyc --report-dir=../../../target/ --reporter=lcov --reporter=text mocha-webpack --require jsdom-global/register --webpack-config webpack.config.test.js \"test/**/*.test.js\""
С нью-йоркским CLI и Стамбулом
"nyc": {
"require": [
"babel-register"
],
"include": [
"js/**/**/*.(js|vue*)"
],
"sourceMap": false,
"instrument": false
},
.babelrc выглядит так:
{
"presets": ["env"],
"env": {
"test": {
"plugins": ["istanbul"]}
}
}
Я использую отдельные файловые компоненты с vue.js, и их тестовое покрытие не показывается сонаром Qube.
Sonar Qube настроен в pom.xml
<sonar.javascript.lcov.reportPaths>target/lcov.info</sonar.javascript.lcov.reportPaths>
В файле webpack.config.js я использую в качестве devtool «inline-source-map», и это приводит к неправильным путям исходного файла в файле отчета (lcov.info).
SF:C:\src\main\frontend\js\components\js\components\VueComponent.vue
Хотя исходный путь:
SF:C:\src\main\frontend\js\components\VueComponent.vue
Я знаю, что эта проблема хорошо известна, и я должен использовать в качестве инструмента разработки "#eval", но это приводит к пути к исходному файлу:
SF:C:/src/main/frontend/js/components/VueComponent.vue?vue&type=script&lang=js&
SonarQube в любом случае дает 0% тестового покрытия.
Есть идеи, что может решить мою проблему?