Покрытие кода SonarJS отображается как 0
Я использую SonarQube 6.5 и пытаюсь импортировать файл lcov.info для покрытия кода с помощью свойства sonar.javascript.lcov.reportPaths.
Моя сборка сделана с использованием Jenkins. код развертывается и тестируется в /path/to/Deploydirectory/parent-project1/project1/, а отчеты создаются в рабочей области jenkins /path/to/jenkins/workspace/BUILD_DEPLOY/parent-project1/project1/ покрытие.
Я использую Стамбул для покрытия кода как
"scripts": {
"coverage": "./node_modules/.bin/istanbul cover
node_modules/mocha/bin/_mocha --dir=/path/to/jenkins/workspace/BUILD_DEPLOY/parent-project1/project1/coverage"
},
lcov.info генерируется как показано ниже
TN:
SF:/path/to/Deploydirectory/project1/package/plugins/file1.js
FN:11,convetUTCtoLocal
FN:17,customCallback
FN:26,(anonymous_3)
FN:50,(anonymous_4)
FN:68,(anonymous_5)
FN:95,(anonymous_6)
......
На SonarQube получаю ошибку
Не удалось разрешить 2 пути к файлам в [/path/to/jenkins/workspace/BUILD_DEPLOY/parent-project1/project1/coverage/lcov.info, /path/to/jenkins/workspace/BUILD_DEPLOY/parent-project2/project2/ охват /lcov.info], первый неразрешенный путь: /path/to/Deploydirectory/parent-project1/project1/file1.js
Конфигурация sonrQube
sonar.inclusions=**/*.js
sonar.scm.disabled=true
sonar.sources=$WORKSPACE
sonar.java.binaries=$WORKSPACE
sonar.projectBaseDir=/path/to
sonar.javascript.lcov.reportPaths=
/path/to/jenkins/workspace/BUILD_DEPLOY/parent-
project1/project1/coverage/lcov.info,
/path/to/jenkins/workspace/BUILD_DEPLOY/parent-
project2/project2/coverage/lcov.info
sonar.sourceEncoding=UTF-8
0 ответов
Вы можете иметь некоторую собственность в вашем sonar-project.properties
это противоречит отчетам, возможно, проблема с маршрутизацией?
Породив lcov.info
файл и сообщая сонар-сканеру, где он находится sonar.javascript.lcov.reportPaths
( список через запятую) правильно загрузит ваше покрытие.
Рассматривая случай, когда покрытие создается с nyc
Модуль NPM (или istanbul
в вашем случае, пока генерируется файл lcov), сценарий покрытия и конфигурация сонара будут следующими:
package.json
:
"scripts": {
"coverage": "nyc npm test",
"test": "mocha tests/unit/*.js"
},
sonar-project.properties
:
sonar.host.url=https://sonarqube.server
sonar.scm.disabled=true
sonar.projectKey=my-app
sonar.projectName=My App
sonar.projectVersion=1.0
sonar.language=js
sonar.sources=src
sonar.javascript.lcov.reportPaths=coverage/lcov.info
sonar.eslint.reportPaths=eslint-report.json