agent-js-cypressdeprecated

This agent helps Cypress to communicate with Report Portal

Usage no npm install needed!

<script type="module">
  import agentJsCypress from 'https://cdn.skypack.dev/agent-js-cypress';
</script>

README

agent-js-cypress

Cypress js agent is runtime reporter for EPAM report portal which provides information about collection run.

Install

$ npm install agent-js-cypress --save-dev
$ npm install reportportal-client --save-dev

Usage

Cypress.json

Add the following options to cypress.json


{
    "reporter": "agent-js-cypress/rp-reporter.js",
    "reporterOptions": {
        "endpoint": "http://your-instance.com:8080/api/v1",
        "token": "00000000-0000-0000-0000-000000000000",
        "launch": "LAUNCH_NAME",
        "project": "PROJECT_NAME",
        "description": "PROJECT_DESCRIPTION",
        "isLaunchMergeRequired": true
    }
}

Add file to run Cypress with custom behavior

Create folder "scripts" on project folder. Copy the following script into "cypress.js" file and put in to "scripts" folder.


const cypress = require('cypress'),
    RPClient = require('reportportal-client')
    fs = require('fs'),
    glob = require("glob");

const cypressConfigFile = "cypress.json";


const getLaunchTempFiles = () => {
    return glob.sync("rplaunch-*.tmp");
}

const deleteTempFile = (filename) => {
    fs.unlinkSync(filename);
}

cypress.run().then(
    () => {
      fs.readFile(cypressConfigFile, 'utf8', function (err, data) {
        if (err) {
            throw err;
        }

        let config = JSON.parse(data);
            
        if (config.reporterOptions.isLaunchMergeRequired) {
            let client = new RPClient(config.reporterOptions);
            client.mergeLaunches();
            let files = getLaunchTempFiles();
            files.map(deleteTempFile);
        }
      });
    },
    error => {
      console.error(error)
      
      let files = getLaunchTempFiles();
      files.map(deleteTempFiles);
      process.exit(1)
    }
);

Update package.json "scripts" section


"scripts": {
    ...
    "cypress": "node scripts/cypress.js",
    ...
},

Options

Runs support following options:

Parameter Description
token User's Report Portal toke from which you want to send requests. It can be found on the profile page of this user.
endpoint URL of your server. For example 'https://server:8080/api/v1'.
launch Name of launch at creation.
project The name of the project in which the launches will be created.
debug Determines whether Cypress run should be logged in details.
isLaunchMergeRequired Determines merge Cypress run's in to one launch or not

Screenshot support

Curently supported only default usage of Cypress screenshot function. Using custom filename is not supported yet. Will be added in future versions.


cy.screenshot()
cy.get('.post').screenshot()

Copyright Notice

Licensed under the Apache License v2.0

Contribution and Support

Implemented and supported by Ahold Delheize