karma-sonarqube-reporter

A karma reporter plugin for generating Sonarqube generic test reports

Usage no npm install needed!

<script type="module">
  import karmaSonarqubeReporter from 'https://cdn.skypack.dev/karma-sonarqube-reporter';
</script>

README

karma-sonarqube-reporter

npm version Build Status Coverage Status Quality Gate All Contributors

Karma reporter plugin for generating SonarQube generic test reports.

Requirements

Node.js >= 8.10.0

Installation

npm install karma-sonarqube-reporter --save-dev

Configuration

Adjust your karma.conf.js file:

Create a new plugin entry

plugins: [
  require('karma-sonarqube-reporter')
]

Add configuration parameters

// Default configuration
sonarqubeReporter: {
  basePath: 'src/app',        // test files folder
  filePattern: '**/*spec.ts', // test files glob pattern
  encoding: 'utf-8',          // test files encoding
  outputFolder: 'reports',    // report destination
  legacyMode: false,          // report for Sonarqube < 6.2 (disabled)
  reportName: (metadata) => { // report name callback, but accepts also a 
                              // string (file name) to generate a single file
    /**
     * Report metadata array:
     * - metadata[0] = browser name
     * - metadata[1] = browser version
     * - metadata[2] = plataform name
     * - metadata[3] = plataform version
     */
     return metadata.concat('xml').join('.');
  }
}

Activate sonarqube reporter

reporters: ['sonarqube']

Click here to see a full example.

Running

If your project uses Angular CLI run ng test and check the output folder.

$ ls reports
chrome.65.0.3325.linux.0.0.0.xml
firefox.54.0.0.linux.0.0.0.xml

The current report files' schema is defined on the SonarQube Generic Test Data page.

Add to your sonar-project.properties one of the following properties:

Legacy Mode Property
false sonar.testExecutionReportPaths
true sonar.genericcoverage.unitTestReportPaths

Note report paths should be passed in a comma-delimited.

Finally, start SonarQube Scanner on your project folder.

Contributions are welcome!

That's all!

Contributors ✨

Thanks goes to these wonderful people (emoji key):


Fernando Costa

πŸ’» πŸ› πŸ“–

Sohan Soni

πŸ’»

Steffen Giers

πŸ’»

Maurycy Gosciniak

πŸ›

Fabio

πŸ’» πŸ›

HΓ©la Ben Khalfallah

πŸ›

Esche

πŸ›

JΓ©rΓ©my Bardon

πŸ’»

Paulius Paplauskas

πŸ’»

This project follows the all-contributors specification. Contributions of any kind welcome!