A QUnit test runner with Istanbul and headless Chrome.
You must be using Node >= 8.9.4.
This test runner assumes that your code is already instrumented for Istanbul.
Via npm:
npm install qunit-coverage
qunit-coverage is currently accessible via its Node API. The function takes a file name and options object, and it returns a promise.
const qunit = require("qunit-coverage");
qunit("path-to-file", {
/* options */
}).then(/* use results */);Opens a test fixture in headless Chrome, calls QUnit.start(), logs test results to the console, and returns a promise that resolves with a results object. The results object follows the below format:
{
pass: Boolean,
results: { // As numbers
passed: Number,
failed: Number,
total: Number,
},
coverage: { // If coverage was ran, as percentages
branch: Number,
function: Number,
statement: Number,
},
},
Type: Boolean
Default: false
Logs more detailed output to the console.
Type: Number
Default: 5000
Will fail and exit the tests if the timeout limit is exceeded.
Type: Object
Default: {}
Passes options to puppeteer.launch(). For a list of valid options, see the puppeteer documentation.
Type: Boolean|Object
Default: false
Configuration options for coverage testing. Passing false will prevent coverage testing. Passing true will log a text summary report to the console if options.verbose is true.
Type: String
Default: process.cwd()
Where to output any coverage reports that Istanbul generates. Defaults to the current working directory.
Type: Array<String>
Default: []
What formats to output Istanbul coverage reports as. Valid values include "lcovonly", "json", "html", "text-summary" and more.
Please see CONTRIBUTING.md for more information on working with this project.
- Allow for a glob file input, or an array of files (or globs)
- Prettier output and more detailed errors / warnings
- Expose a CLI
- Document how to instrument with Istanbul
- Coverage thresholds?
Inspired by these projects: