Skip to end of metadata
Go to start of metadata

Description / Features

The plugin provides and imports a generic test coverage format. Regardless of language or combination of languages, if you get your coverage data into the generic format specified by this plugin, it will be imported and correctly applied.

Installation

  1. Install the plugin through the Update Center or download it into the SONARQUBE_HOME/extensions/plugins directory
  2. Restart the SonarQube server

Usage

Example: https://github.com/SonarSource/sonar-examples/tree/master/projects/languages/generic-coverage/sonar-runner

Coverage and integration tests report format

The project for which you want to import coverage data and integration tests coverage data should contain an XML file complying with the attached XSD schema.
It should look like the following sample:

The root node should be named "coverage". Its version attribute should be set to "1".
Insert a "file" element for each file which can be covered by tests. Its "path" attribute can be either absolute or relative to the root of the module.
Inside a "file" element, insert a "lineToCover" for each line which can be covered by unit tests. It can have the following attributes:

  • "lineNumber" (mandatory)
  • "covered" (mandatory): boolean value indicating whether tests actually hit that line
  • "branchesToCover" (optional): number of branches which can be covered
  • "coveredBranches" (optional): number of branches which are actually covered by tests

Unit tests report format

The project for which you want to import unit tests result should contain an XML file complying with the attached XSD schema.
It should look like the following sample:

The root node should be named "unitTest". Its version attribute should be set to "1".
Insert a "file" element for each file which can be covered by tests. Its "path" attribute can be either absolute or relative to the root of the module.
Inside a "file" element, insert a "testCase" for each line which can be covered by unit tests. It can have the following attributes/children:

  • "testCase" (mandatory)
  • "name" (mandatory): boolean value indicating whether tests actually hit that line
  • "duration (mandatory): long value in milliseconds
  • "failure|error|skipped" (optional): if the test is not ok report the cause with a message and a long description
  • "message" (mandatory): short message describing the cause
  • "stacktrace" (optional): long message containing details about "failure|error|skipped" status

Project configuration

The path to the XML file containing coverage data can be configured in 2 ways:

  • In the SonarQube page of the project: Configuration > Settings > Generic Coverage.
  • By setting one or more of the following properties

These properties can be a comma separated list of paths either absolute or relative to the root of the module.

Coverage data, integration tests coverage data and unit tests will be imported on the next analysis. If this is not the case, check the analysis logs for warnings.

  • No labels