@reportportal/agent-js-jest
Agent to integrate Jest with ReportPortal.
Installation
npm install --save-dev @reportportal/agent-js-jest
Configuration
1. Create jest.config.js
file with reportportal configuration:
module.exports = {
testRunner: 'jest-circus/runner',
testRegex: ['/__tests__/.*.spec.js?$'],
reporters: [
'default',
[
'@reportportal/agent-js-jest',
{
apiKey: 'reportportalApiKey',
endpoint: 'https://your.reportportal.server/api/v1',
project: 'Your reportportal project name',
launch: 'Your launch name',
attributes: [
{
key: 'key',
value: 'value',
},
{
value: 'value',
},
],
description: 'Your launch description',
}
]
],
...
};
In case you use the jest config section of package.json
, add the following entry:
{
"jest": {
...
"reporters": [
"default",
["@reportportal/agent-js-jest",
{
"token": "reportportalApiKey",
"endpoint": "https://your.reportportal.server/api/v1",
"project": "Your reportportal project name",
"launch": "Your launch name",
"attributes": [
{
"key": "key",
"value": "value"
},
{
"value": "value"
}
],
"description": "Your launch description"
}]
],
...
}
}
The full list of available options presented below.
Option | Necessity | Default | Description |
---|
apiKey | Required | | User's reportportal token from which you want to send requests. It can be found on the profile page of this user. |
endpoint | Required | | URL of your server. For example 'https://server:8080/api/v1'. |
launch | Required | | Name of launch at creation. |
project | Required | | The name of the project in which the launches will be created. |
attributes | Optional | [] | Launch attributes. |
description | Optional | '' | Launch description. |
rerun | Optional | false | Enable rerun |
rerunOf | Optional | Not set | UUID of launch you want to rerun. If not specified, reportportal will update the latest launch with the same name |
mode | Optional | 'DEFAULT' | Results will be submitted to Launches page 'DEBUG' - Results will be submitted to Debug page. |
skippedIssue | Optional | true | reportportal provides feature to mark skipped tests as not 'To Investigate'. Option could be equal boolean values: true - skipped tests considered as issues and will be marked as 'To Investigate' on reportportal. false - skipped tests will not be marked as 'To Investigate' on application. |
debug | Optional | false | This flag allows seeing the logs of the client-javascript. Useful for debugging. |
launchId | Optional | Not set | The ID of an already existing launch. The launch must be in 'IN_PROGRESS' status while the tests are running. Please note that if this ID is provided, the launch will not be finished at the end of the run and must be finished separately. |
logLaunchLink | Optional | false | This flag allows print the URL of the Launch of the tests in console. |
restClientConfig | Optional | Not set | The object with agent property for configure http(s) client, may contain other client options eg. timeout . Visit client-javascript for more details. |
token | Deprecated | Not set | Use apiKey instead. |
The following options can be overridden using ENVIRONMENT variables:
Option | ENV variable | Note |
---|
apiKey | RP_API_KEY | |
project | RP_PROJECT_NAME | |
endpoint | RP_ENDPOINT | |
launch | RP_LAUNCH | |
attributes | RP_ATTRIBUTES | Format: key:value,key:value,value |
description | RP_DESCRIPTION | |
launchId | RP_LAUNCH_ID | |
mode | RP_MODE | |
token | RP_TOKEN | deprecated Use RP_API_KEY instead. |
This is for your convenience if you have a continuous job that runs your tests and may report results that point to a different reportportal project definition, launch name, or attributes.
2. Add script to package.json
file:
{
"scripts": {
"test": "jest --no-colors --detectOpenHandles --config ./jest.config.js"
}
}
Features
Retries
The agent has support of retries.
Read more about retries in jest.
Copyright Notice
Licensed under the Apache License v2.0
Contribution
This code was based on the jest-junit
and adapted by team members of Ontoforce for the
ReportPortal upload. Ontoforce contributed this effort as Open Source to the
ReportPortal project team.