@mediainstinctgroup/jest-sonar-reporter
Version:
A Sonar test reporter for Jest.
152 lines (111 loc) • 3.27 kB
Markdown
# jest-sonar-reporter
## NEW
- Add support for usage in reporters array
- Add support for reading configuration from reporters array
- Fully backwards compatible (similar solution like in (jest-junit)
- I will update the readme as soon I have feedback from you!
Example usage:
```javascript
reporters: [
"default",
["jest-sonar-reporter", { reportPath: "build/sonar-test", reportFile: "test.xml" }],
]
```
## Installation
Using npm:
```bash
$ npm i -D jest-sonar-reporter
```
Using yarn:
```bash
$ yarn add -D jest-sonar-reporter
```
## Configuration
Configure Jest in your `package.json` to use `jest-sonar-reporter` as a custom results processor.
```json
{
"jest": {
"testResultsProcessor": "jest-sonar-reporter"
}
}
```
Configure Sonar to import the test results. Add the `sonar.testExecutionReportPaths` property to your
`sonar-project.properties` file.
```properties
sonar.testExecutionReportPaths=test-report.xml
```
## Customization
To customize the reporter you can use `package.json` to store the configuration.
Create a `jestSonar` entry like this:
```json
{
"jestSonar": {}
}
```
You can customize the following options:
- `reportPath` This will specify the path to put the report in.
- `reportFile` This will specify the file name of the report.
- `indent` This will specify the indentation to format the report.
```json
{
"jestSonar": {
"reportPath": "reports",
"reportFile": "test-reporter.xml",
"indent": 4
}
}
```
> Important: Don't forget to update `sonar.testExecutionReportPaths` when you use a custom path and file name.
### Support for Sonarqube 5.6.x
Sonarqube 5.6.x does not support [Generic Test Data](https://docs.sonarqube.org/display/SONAR/Generic+Test+Data) however it has a [Generic Test Coverage plugin](https://docs.sonarqube.org/display/PLUG/Generic+Test+Coverage) which offers similar functionality.
If you have the plugin installed on Sonarqube, you can configure this reporter to produce files in supported format.
```json
{
"jestSonar": {
"sonar56x": true
}
}
```
Configure Sonar to import the test results. Add the `sonar.genericcoverage.unitTestReportPaths` property to your
`sonar-project.properties` file.
```properties
sonar.genericcoverage.unitTestReportPaths=test-report.xml
```
### Support for different configuration environments
To support different environments add the `env` property to the configuration and overwrite the value of the option you want to modify for the specific environment.
You can overwrite the following configuration options: `reportPath`, `reportFile`, `indent`, `sonar56x`
For example: Overwrite the path were the report will be stored.
```json
{
"jestSonar": {
"reportPath": "reports",
"reportFile": "test-reporter.xml",
"indent": 4,
"env": {
"test": {
"reportPath": "reports-test"
}
}
}
}
```
Use the `NODE_ENV` variable to activate the environment specific configuration.
```shell
NODE_ENV=test npm run test
```
## Usage
1. Run Jest to execute your tests.
Using npm:
```bash
$ npm run test
```
Using yarn:
```bash
$ yarn run test
```
2. Run sonar-scanner to import the test results.
```bash
$ sonar-scanner
```
## Licence
This project uses the [MIT](LICENSE) licence.