A karma reporter plugin for generating Sonarqube generic test reports
npm install karma-sonarqube-reporterNode.js >= 8.10.0
npm install karma-sonarqube-reporter --save-dev
Adjust your karma.conf.js file:
Create a new plugin entry
``typescript`
plugins: [
require('karma-sonarqube-reporter')
]
Add configuration parameters
`javascript`
// 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
`typescript`
reporters: ['sonarqube']
Click [here][3] to see a full example.
If your project uses [Angular CLI][4] run ng test and check the output folder.
`command`
$ 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][5] 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][6] on your project folder.
Contributions are welcome!
That's all!
[1]: https://karma-runner.github.io/2.0/index.html
[2]: https://www.sonarqube.org/
[3]: https://github.com/fadc80/karma-sonarqube-reporter/blob/master/karma.conf.js
[4]: https://github.com/angular/angular-cli
[5]: https://docs.sonarqube.org/display/SONAR/Generic+Test+Data#GenericTestData-GenericExecution
[6]: https://docs.sonarqube.org/display/SCAN/Analyzing+with+SonarQube+Scanner
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!