📋Beautiful enterprise-grade test reports integrated with CodeceptJS testing framework. This helpes you integrate the test results of CodeceptJS with ReportPortal
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
npm i @reportportal/agent-js-codecept --save
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',
selenoidVideoUpload: true,
selenoidVideoPath: './output/video'
}
//...
}
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 usedprojectName
: the project that you created in the reportportal UIlaunchDescription
: (optional) the description of your launch, if not provided, the description will be emptylaunchAttributes
: (optional) the attributes of your launch, if not provided, the attributes will be emptydebug
: (optional) to turn on the debug for reportportaldebugMode
: (optional) to run the launch in debug mode. Launch will not be seen in the launch section but in the debug sectionrerun
: (optional) to enable rerunrerunOf
: (optional) UUID of launch you want to rerun. If not specified, report portal will update the latest launch with the same name.selenoidVideoUpload
: (optional) Indicates if selenoid video should be uploaded on failed tests. Default: falseselenoidVideoPath
: (optional) Specifies where the selenoid videos are located. Default:./output/video
To use the selenoid video upload feature you have to add the special capability videoName
with a random id if you run your tests in parallel. The feature needs a per test identifier for the video. Selenoid Special Capability
You have also to set the special capability enableVideo
to true
.
Example:
'selenoid:options': {
enableVideo: true, // Enable video for selenoid
videoName: `${uuidv4()}.mp4`, // Set video name with per test identifier if tests are run in parallel.
},
Set selenoidVideoUpload
and selenoidVideoPath
in the reportportal agent configuration.
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.
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
run-workers
command to aggregate all tests under one launch.
To debug this plugin run script enabing DEBUG env variable:
DEBUG="codeceptjs:reportportal" npx codeceptjs run