ReportPortal Agent for CodeceptJS
Based on CodeceptJS RPHelper by PeterNgTr.
@reportportal/agent-js-codecept
is a CodeceptJS plugin which can publish tests results on ReportPortal after execution.
When enabled this plugin sends information on test runs to ReportPortal server:
-
✅ status for failed and passed tests -
🔍 step by step log -
🖼 screenshots on failure are attached
Installation
npm i @reportportal/agent-js-codecept --save
Configuration
This plugin should be added in codecept.conf.js
Example:
{
//...
plugins: {
reportportal: {
enabled: true,
require: '@reportportal/agent-js-codecept',
token: 'YOUR_TOKEN',
endpoint: 'http://localhost:8080/api/v1',
launchName: 'local launch',
}
//...
}
To use this plugin you need to provide the following info:
-
token
: which can be found by navigating to the user profile page, clicking the username drop-down in the right header and selecting the "Profile" > "UUID" – is a unique user identifier. UUID is used in automated test configuration files for a user authentication instead of a password. It will allow you to post data, without logging it in the UI. -
endpoint
: your reportportal host +api/v1
for instance:http://localhost:8080/api/v1
-
launchName
: the launch name you want, if not provided, the suite title will be used -
projectName
: the project that you created in the reportportal UI -
launchDescription
: (optional) the description of your launch, if not provided, the description will be empty -
launchAttributes
: (optional) the attributes of your launch, if not provided, the attributes will be empty -
debug
: (optional) to turn on the debug for reportportal -
rerun
: (optional) to enable rerun -
rerunOf
: (optional) UUID of launch you want to rerun. If not specified, report portal will update the latest launch with the same name.
Public API
Add Log Message
You can send logs to ReportPortal to current step / test by accessing this plugin from your code:
const reportPortal = codeceptjs.container.plugins('reportportal');
reportPortal.addLog({
level: 'debug',
message: 'your message'
});
To send attachment, use second parameter:
const reportPortal = codeceptjs.container.plugins('reportportal');
reportPortal.addLog({
level: 'debug',
message: 'your message'
}, {
name: 'screenshot.png',
type: 'image/png',
content: fs.readFileSync('output/screenshot.png')
});
See sendLog
method of ReportPortal JavaScript Client for more oprtions.
Get Report URL
Once report is posted a special reportportal.result
event is created.
You can use it to pass URL of a report into other plugins. For instance, you can use it to send Slack or Email notifications including a link to a report.
// inside your custom plugin:
event.dispatcher.on('reportportal.result', (result) => {
// use result.link as URL to report
console.log('Report was published at', result.link);
})
Support for retried Test Scenarios
Added support for retried Test Scenarios used in accordance with https://codecept.io/basics/#retry-scenario
Scenario('Really complex', ({ I }) => {
// test goes here
}).retry(2);
// alternative
Scenario('Really complex', { retries: 2 },({ I }) => {});
Todo
- [ ] Support
run-workers
command to aggregate all tests under one launch.
Debugging Plugin
To debug this plugin run script enabling DEBUG env variable:
DEBUG="codeceptjs:reportportal" npx codeceptjs run