Тестирование покрытия SFC с помощью istanbul и sonar qube - неверный путь к исходному файлу в lcov.info - PullRequest
0 голосов
/ 12 сентября 2018

Я использую 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% тестового покрытия.

Есть идеи, что может решить мою проблему?

...