sonarqube-jenkins-config
Sonar Config
-
.Jenkinsfile config
stage('SonarQube analysis') {
steps {
script {
scannerHome = tool 'SonarScanner4';
}
withSonarQubeEnv('SonarQube') {
sh "${scannerHome}/bin/sonar-scanner"
}
}
} -
sonar-project.properties
sonar.projectBaseDir=test-app // app dir
sonar.projectName=test-app
sonar.projectKey=test-app
sonar.projectVersion=1.0
sonar.sourceEncoding=UTF-8
sonar.language=js
sonar.sources=src
sonar.tests=test
sonar.exclusions=test/,node_modules/,build/,/less/,/config/,/config.js,/imgs/ // files not to test
sonar.test.inclusions=test/shared/.js,test/components/**/.js // files to test
sonar.javascript.lcov.reportPaths=coverage/lcov.info //coverage path
sonar.testExecutionReportPaths=coverage/test-report.xml //unit test path -
package.json
"eslint-plugin-sonarjs": "^0.3.0",
"jest-sonar-reporter": "^2.0.0","jestSonar": {
"reportPath": "coverage", // same with path in sonar-project.properties file
"reportFile": "test-report.xml", // same with path in sonar-project.properties file
"sonar56x": true // to get coverage data for sonarQ 5.6.*
} -
jest.config.js
module.exports = Object.assign(jestConfig, {
coverageThreshold: {
global: {
branches: 95,
functions: 95,
lines: 95,
statements: 95,
},
},
testResultsProcessor: 'jest-sonar-reporter',
}); -
.eslintrc
{
"parser": "babel-eslint",
"extends": [ "plugin:sonarjs/recommended"],
"plugins": ["sonarjs"],
"rules": {
"eol-last": ["error", "always"],
"sonarjs/cognitive-complexity": ["error", 25],
"sonarjs/no-duplicate-string": "off",
"sonarjs/no-identical-functions": "off"
}
}
fiels:

浙公网安备 33010602011771号