@voicenter-team/cypress-reporter-pm2
v1.0.2
Published
Module that allows you to log cypress test results into pm2 metrics
Downloads
642
Readme
@voicenter-team/cypress-reporter-pm2
cypress-reporter-pm2 is a cypress plugin for creating metrics after cypress tests execution.
Install
# npm
npm install @voicenter-team/cypress-reporter-pm2 --save-dev
# yarn
yarn add @voicenter-team/cypress-reporter-pm2 --dev
Usage
Import cypress-reporter-pm2 into cypress/plugins/index.js
// cypress/plugins/index.js
require('dotenv').config()
const cypressReporterPm2 = require('@voicenter-team/cypress-reporter-pm2');
module.exports = (on, config) => {
config.testFiles = [...JSON.parse(process.env.SPEC_TO_RUN)]
cypressReporterPm2(on)
return config
};
Create pm2 config file in the project root directory:
// test.config.js
require('dotenv').config()
module.exports = {
apps: [{
name: 'cypress-basic-test',
script: './node_modules/@vue/cli-service/bin/vue-cli-service.js',
watch: false,
args: `test:e2e --url=${process.env.VUE_APP_URL} --headless`,
cwd: './',
restart_delay: 180000,
env: {
SPEC_TO_RUN: '["page.exist.spec.js", "check.name.spec.js"]'
}
}]
}
env.SPEC_TO_RUN
should include stringified array of tests which should be executed.
Set VUE_APP_URL
to .env
or use hardcoded string instead.
Use restart_delay
to set the interval time between tests execution (in milliseconds).
Execute:
pm2 start test.config.js
Parameters
on - cypress event emitter
namespace [string] - namespace for current application to differ it's metrics from other applications
options [object] - configuration for plugin.
- namePrefix [string] - prefix for customizing metric key
- nameSuffix [string] - suffix for customizing metric key
- metricNameBuilder [function] - custom function for building metric key. @param {string} spec [spec name] @param {object} test [test data] @param {string} namespace [namespace] @return {string}
- testNameParser [function] - custom function for parsing test name. @param {string} spec [spec name] @param {object} test [test data] @return {string}