JSON swagger/openapi3 coverage reporter for Pactum tests. It's capable of reading the swagger/oas3 definitions from either swagger.yaml
or swagger.json
or openapi3.yaml
(served on a http server endpoint).
npm install --save-dev pactum pactum-swagger-coverage
const pactum = require('pactum');
const psc = require('pactum-swagger-coverage');
const reporter = pactum.reporter;
// global before block
before(() => {
reporter.add(psc);
});
// global after block
after(() => {
return reporter.end();
});
const psc = require('pactum-swagger-coverage');
// name of the report file - defaults to "swagger-cov-report.json"
psc.reportFile = 'report-name.json';
// folder path for the report file - defaults to "./reports"
psc.reportPath = './reports-path';
/**
* base path - defaults to `basePath` for swagger 2.0/openapi2 and first server url
* or empty if either of them doesn't exist or not set explicitly
*/
psc.basePath = '/api/server/v1';
// Swagger json url of the server - defaults to ""
psc.swaggerJsonUrl = "http://localhost:3010/api/server/v1/json";
// Swagger Yaml file path - defaults to ""
psc.swaggerYamlPath = './tests/testObjects/swagger.yaml';
{
"basePath": "/api/server/v1",
"coverage": 0.2,
"coveredApiCount": 1,
"missedApiCount": 4,
"totalApiCount": 5,
"coveredApiList": [
"/getallninjas"
],
"missedApiList": [
"/health",
"/getninjabyid/{id}",
"/getninjabyname/{name}",
"/getninjabyrank/{rank}"
]
}
Note: Either 'swaggerJsonUrl' or 'swaggerYamlPath' should be provided for reporter to work.
Read more about Pactum here.
Inspired by swagger-coverage-postman.