@casualbot/jest-sonar-reporter
v2.4.0
Published
A Sonar test reporter for Jest.
Downloads
124,650
Maintainers
Readme
Jest Sonar Reporter
@casualbot/jest-sonar-reporter
is a custom results processor for Jest derived from Christian W. original work here.
It has been updated to be usable as a reporter in the jest.config
, as well as, provide the ability to output relative paths for the generated XML file.
Installation
Using npm:
npm install --save-dev @casualbot/jest-sonar-reporter
Using yarn:
yarn add --dev @casualbot/jest-sonar-reporter
Usage
In your jest config add the following entry:
{
"reporters": [ "default", "@casualbot/jest-sonar-reporter" ]
}
Then simply run:
jest
For your Continuous Integration you can simply do:
jest --ci --reporters=default --reporters=@casualbot/jest-sonar-reporter
Usage as testResultsProcessor (deprecated)
The support for testResultsProcessor
is only kept for [legacy reasons][test-results-processor] and might be removed in the future.
You should therefore prefer to configure @casualbot/jest-sonar-reporter
as a reporter.
Should you still want to, add the following entry to your jest config:
{
"testResultsProcessor": "@casualbot/jest-sonar-reporter"
}
Then simply run:
jest
For your Continuous Integration you can simply do:
jest --ci --testResultsProcessor="@casualbot/jest-sonar-reporter"
Configuration
@casualbot/jest-sonar-reporter
offers several configurations based on environment variables or a @casualbot/jest-sonar-reporter
key defined in package.json
or a reporter option.
Environment variable and package.json configuration should be strings.
Reporter options should also be strings exception for suiteNameTemplate, classNameTemplate, titleNameTemplate that can also accept a function returning a string.
| Environment Variable Name | Reporter Config Name| Description | Default | Possible Injection Values
|---|---|---|---|---|
| JEST_SUITE_NAME
| suiteName
| name
attribute of <testsuites>
| "jest tests"
| N/A
| JEST_SONAR_OUTPUT_DIR
| outputDirectory
| Directory to save the output. | process.cwd()
| N/A
| JEST_SONAR_OUTPUT_NAME
| outputName
| File name for the output. | "jest-report.xml"
| N/A
| JEST_SONAR_OUTPUT_FILE
| outputFile
| Fullpath for the output. If defined, outputDirectory
and outputName
will be overridden | undefined
| N/A
| JEST_SONAR_56_FORMAT
| formatForSonar56
| Will generate the xml report for Sonar 5.6 | false
| N/A
| JEST_SONAR_RELATIVE_PATHS
| relativePaths
| Will use relative paths when generating the xml report | false
| N/A
| JEST_SONAR_UNIQUE_OUTPUT_NAME
| uniqueOutputName
| Create unique file name for the output jest-sonar-report-${uuid}.xml
, overrides outputName
| false
| N/A
| JEST_SONAR_SUITE_NAME
| suiteNameTemplate
| Template string for name
attribute of the <testsuite>
. | "{title}"
| {title}
, {filepath}
, {filename}
, {displayName}
| JEST_SONAR_CLASSNAME
| classNameTemplate
| Template string for the classname
attribute of <testcase>
. | "{classname} {title}"
| {classname}
, {title}
, {suitename}
, {filepath}
, {filename}
, {displayName}
| JEST_SONAR_TITLE
| titleTemplate
| Template string for the name
attribute of <testcase>
. | "{classname} {title}"
| {classname}
, {title}
, {filepath}
, {filename}
, {displayName}
| JEST_SONAR_ANCESTOR_SEPARATOR
| ancestorSeparator
| Character(s) used to join the describe
blocks. | " "
| N/A
| JEST_SONAR_ADD_FILE_ATTRIBUTE
| addFileAttribute
| Add file attribute to the output. This config is primarily for Circle CI. This setting provides richer details but may break on other CI platforms. Must be a string. | "false"
| N/A
| JEST_SONAR_INCLUDE_CONSOLE_OUTPUT
| includeConsoleOutput
| Adds console output to any testSuite that generates stdout during a test run. | false
| N/A
| JEST_SONAR_INCLUDE_SHORT_CONSOLE_OUTPUT
| includeShortConsoleOutput
| Adds short console output (only message value) to any testSuite that generates stdout during a test run. | false
| N/A
| JEST_SONAR_REPORT_TEST_SUITE_ERRORS
| reportTestSuiteErrors
| Reports test suites that failed to execute altogether as error
. Note: since the suite name cannot be determined from files that fail to load, it will default to file path.| false
| N/A
| JEST_SONAR_NO_STACK_TRACE
| noStackTrace
| Omit stack traces from test failure reports, similar to jest --noStackTrace
| false
| N/A
| JEST_USE_PATH_FOR_SUITE_NAME
| usePathForSuiteName
| DEPRECATED. Use suiteNameTemplate
instead. Use file path as the name
attribute of <testsuite>
| "false"
| N/A
You can configure these options via the command line as seen below:
JEST_SUITE_NAME="Jest JUnit Unit Tests" JEST_SONAR_OUTPUT_DIR="./artifacts" jest
Or you can also define a @casualbot/jest-sonar-reporter
key in your package.json
. All are string values.
{
...,
"jest": {
"rootDir": ".",
"testResultsProcessor": "@casualbot/jest-sonar-reporter"
},
"@casualbot/jest-sonar-reporter": {
"suiteName": "jest tests",
"outputDirectory": "coverage",
"outputName": "jest-report.xml",
"uniqueOutputName": "false",
"classNameTemplate": "{classname}-{title}",
"titleTemplate": "{classname}-{title}",
"ancestorSeparator": " › ",
"usePathForSuiteName": "true",
"relativePaths": "true"
}
}
Or you can define your options in your reporter configuration.
// jest.config.js
{
reporters: [
'default',
[
'@casualbot/jest-sonar-reporter',
{
relativePaths: true,
outputName: 'sonar-report.xml',
outputDirectory: 'coverage'
}
]
],
}