-
Using Sonarqube Enterprise Edition Version 8.6.1 (build 40680)
-
I have a multi-module project. One module is in Java where i have the coverage right, One other is in Typescript where i don’t have the coverage yet.
my lcov.info and ut_report.xml are correctly generated.
Here is my configuration
Parent module pom.xml:
<sonar.sourceEncoding>UTF-8</sonar.sourceEncoding>
<sonar.java.coveragePlugin>jacoco</sonar.java.coveragePlugin>
Typescript module pom.xml
<sonar.sources>src</sonar.sources>
<sonar.tests>src</sonar.tests>
<sonar.test.inclusions>/*.spec.ts</sonar.test.inclusions>
<sonar.testExecutionReportPaths>src/reports/ut_report.xml</sonar.testExecutionReportPaths>
<sonar.javascript.lcov.reportPath>src/coverage/lcov.info</sonar.javascript.lcov.reportPath>
<sonar.typescript.lcov.reportPath>src/coverage/lcov.info</sonar.typescript.lcov.reportPath>
<sonar.coverage.exclusions>/*.spec.ts,karma.conf.js</sonar.coverage.exclusions>
package.json (3.0 KB) angular.json (4.1 KB)
karma.conf.js
// Karma configuration file, see link for more information
// Karma - Configuration Fileprocess.env.CHROME_BIN = require(‘puppeteer’).executablePath()
module.exports = function (config) {
config.set({
basePath: ‘’,
frameworks: [‘jasmine’, ‘@angular-devkit/build-angular’],
plugins: [
require(‘karma-jasmine’),
require(‘karma-chrome-launcher’),
require(‘karma-jasmine-html-reporter’),
require(‘karma-coverage-istanbul-reporter’),
require(‘@angular-devkit/build-angular/plugins/karma’),
require(‘karma-sonarqube-unit-reporter’)
],
client: {
clearContext: false, // leave Jasmine Spec Runner output visible in browser
jasmine: {
random : false,
oneFailurePerSpec: true
}
},
coverageIstanbulReporter: {
dir: require(‘path’).join(__dirname, ‘coverage’),
reports: [‘html’, ‘lcovonly’, ‘text-summary’],
fixWebpackSourcePaths: true
},
sonarQubeUnitReporter: {
sonarQubeVersion: ‘LATEST’,
outputFile: ‘reports/ut_report.xml’,
useBrowserName: false
},
reporters: [‘progress’, ‘sonarqubeUnit’, ‘kjhtml’],
port: 9876,
colors: true,
logLevel: config.LOG_INFO,
autoWatch: true,
browsers: [‘Chrome’],
customLaunchers: {
FirefoxHeadless: {
base: ‘Firefox’,
flags: [ ‘-headless’ ],
},
ChromeHeadlessNoSandbox: {
base: ‘ChromeHeadless’,
flags: [‘–no-sandbox’]
}
},
singleRun: false,
browserDisconnectTimeout : 10000,
browserDisconnectTolerance : 1,
browserNoActivityTimeout : 60000
});
};