eagle-eye-cypress-extension
v1.0.1
Published
Extension to send Eagle Eye messages to PubSub
Downloads
2
Readme
eagle-eye-cypress-extension
Message generator for Eagle Eye, JavaScript, easy build in Cypress framework
Installation
npm install eagle-eye-cypress-extension
Usage of eagle-eye-cypress-extension
Test results shoulb be posted to EagleEye PubSub after each test, to reach it place function
call in cypress/support/index.js
file inside Cypress listener
Cypress.on('test:after:run', (test, runnable) => { }
Default function of eagle-eye-cypress-extension module need 4 parameters:
runnable - from Cypress method, describe all data about test
filePath - path to the file with test, can be easily obtained by calling Cypress.spec.relative
externalData - data from External CI/CD system
config - stable configuration for your messages
Structure for externalData:
{
BUILD_URL: "Build url from Jenkins/Spinnaker",
JOB_ID: "Job Id from CI/CD system",
REPORT: "Link to GCS where you store report from this run",
SHORT_COMMIT: "Short commit",
ACCESS_TOKEN: "Access token to Google Cloud",
};
Structure for configuration:
{
"repo": "Link to GitHub repo",
"environment": "Environment where you run your tests",
"stack": "Stack managment/delivery/etc",
"application": "Name of application under tests",
"source": "cypress",
"project": "Name of project with pubsub ox-ci-cd-devint/ox-ci-cd-prod",
"pubSubTopic": "Name of PubSub topic ox-devint-quality-events/ox-prod-quality-events"
}
###Example eagle_eye_config.json
{
"repo": "https://github.com/openx/ui-internal",
"environment": "devint",
"stack": "management",
"application": "ui-internal",
"source": "cypress",
"project": "ox-ci-cd-devint",
"pubSubTopic": "ox-devint-quality-events"
}
cypress/support/index.js
import sender from 'eagle-eye-cypress-extension';
import config from '../eagle_eye_config.json';
Cypress.on('test:after:run', (test, runnable) => {
if ((Cypress.env('BRANCH') === 'master') || (Cypress.env('BRANCH') === 'develop')) {
const externalData = {
BUILD_URL: Cypress.env('BUILD_URL'),
JOB_ID: Cypress.env('JOB_ID'),
REPORT: Cypress.env('REPORT'),
SHORT_COMMIT: Cypress.env('SHORT_COMMIT'),
ACCESS_TOKEN: Cypress.env('access_token'),
};
sender.sendMsgToEagleEye(runnable, Cypress.spec.relative, externalData, config);
}
});