Sonarqube not showing number of javascript unit test only coverage

Hi I’m analysing frontend project which uses javascript/typescript with npm version 6.14.2. I’m trying to get Sonar to show both code coverage of this project but also a number of unit tests in this project. Currently Sonar shows only percentual coverage but not number of unit tests in given project.

I use Sonar version and have installed required plugins for javascript,typescript…

This is my karma.conf.js file

// Karma configuration file, see link for more information

module.exports = function (config) {
basePath: '',
frameworks: ['jasmine', '@angular-devkit/build-angular'],
plugins: [
client: {
  clearContext: false // leave Jasmine Spec Runner output visible in browser
coverageIstanbulReporter: {
  dir: require('path').join(__dirname, 'coverage'),
  reports: ['html', 'lcovonly'],
  fixWebpackSourcePaths: true
reporters: ['progress', 'kjhtml'],
port: 9876,
colors: true,
logLevel: config.LOG_INFO,
autoWatch: true,
browsers: ['Chrome'],
singleRun: false,
restartOnFileChange: true

I run command yarn -s run test --no-watch --code-coverage --browsers=ChromeHeadless to generate test reports. I then perform sonar analysis and import of those reports into SonarQube with the use of Sonar Scanner. Everything works fine just that in my project I get only percentual code coverage and not number of unit tests in the given project.

Thank you.

To be able to see unit tests count you should install this package
And you should add this sonar.testExecutionReportPaths to your file where you should write the file path which was generated by above package.
Overall the above package will generate xml file, which should have this

<?xml version='1.0'?>
<testExecutions version='1'>
    <file path='src/app/xxx/yyy/www/ppp.spec.ts'>
        <testCase name='Describe block + It block' duration='22'/>
        <testCase name='Describe block + It block' duration='10'/>
        <testCase name='Describe block + It block' duration='7'/>
        <testCase name='Describe block + It block' duration='7'/>
        <testCase name='Describe block + It block' duration='7'/>
        <testCase name='Describe block + It block' duration='5'/>

Note: if you are generating this file in docker environment and then pulling this file from docker env into gitlab env, you should pay attention too the path attribute of file tag, so that sonarQube was able to resolve the path, otherwise even if you have this file, unit test count will not be populated.

1 Like

Hi Arshak

Could you please let me know how can i change file path.
I am getting stuck to change the file path… Its expecting path=“Web/src/…”