docs(class-coverage.md): Add example for V8 coverage report

This commit is contained in:
cenfun 2024-03-03 21:21:11 +08:00
parent d5d4f591f3
commit e7e29de96e
2 changed files with 83 additions and 4 deletions

View file

@ -4,12 +4,12 @@
Coverage gathers information about parts of JavaScript and CSS that were used by the page. Coverage gathers information about parts of JavaScript and CSS that were used by the page.
An example of using JavaScript coverage to produce Istanbul report for page load:
:::note :::note
Coverage APIs are only supported on Chromium-based browsers. Coverage APIs are only supported on Chromium-based browsers.
::: :::
An example of using JavaScript coverage to produce Istanbul report for page load:
```js ```js
const { chromium } = require('playwright'); const { chromium } = require('playwright');
const v8toIstanbul = require('v8-to-istanbul'); const v8toIstanbul = require('v8-to-istanbul');
@ -30,6 +30,45 @@ const v8toIstanbul = require('v8-to-istanbul');
})(); })();
``` ```
Another example is generating native V8 coverage reports with [monocart-coverage-reports](https://github.com/cenfun/monocart-coverage-reports)
```js
const { chromium } = require('playwright');
const MCR = require('monocart-coverage-reports');
(async () => {
const browser = await chromium.launch();
const page = await browser.newPage();
await Promise.all([
page.coverage.startJSCoverage({
resetOnNavigation: false
}),
page.coverage.startCSSCoverage({
resetOnNavigation: false
})
]);
await page.goto('https://playwright.dev/');
const [jsCoverage, cssCoverage] = await Promise.all([
page.coverage.stopJSCoverage(),
page.coverage.stopCSSCoverage()
]);
const coverageData = [... jsCoverage, ... cssCoverage];
const coverageReport = MCR({
name: 'My Coverage Report',
outputDir: './coverage-reports',
reports: ['v8', 'console-details']
});
await coverageReport.add(coverageData);
await coverageReport.generate();
await browser.close();
})();
```
## async method: Coverage.startCSSCoverage ## async method: Coverage.startCSSCoverage
* since: v1.11 * since: v1.11

View file

@ -17132,10 +17132,10 @@ export interface ConsoleMessage {
/** /**
* Coverage gathers information about parts of JavaScript and CSS that were used by the page. * Coverage gathers information about parts of JavaScript and CSS that were used by the page.
* *
* An example of using JavaScript coverage to produce Istanbul report for page load:
*
* **NOTE** Coverage APIs are only supported on Chromium-based browsers. * **NOTE** Coverage APIs are only supported on Chromium-based browsers.
* *
* An example of using JavaScript coverage to produce Istanbul report for page load:
*
* ```js * ```js
* const { chromium } = require('playwright'); * const { chromium } = require('playwright');
* const v8toIstanbul = require('v8-to-istanbul'); * const v8toIstanbul = require('v8-to-istanbul');
@ -17156,6 +17156,46 @@ export interface ConsoleMessage {
* })(); * })();
* ``` * ```
* *
* Another example is generating native V8 coverage reports with
* [monocart-coverage-reports](https://github.com/cenfun/monocart-coverage-reports)
*
* ```js
* const { chromium } = require('playwright');
* const MCR = require('monocart-coverage-reports');
*
* (async () => {
* const browser = await chromium.launch();
* const page = await browser.newPage();
*
* await Promise.all([
* page.coverage.startJSCoverage({
* resetOnNavigation: false
* }),
* page.coverage.startCSSCoverage({
* resetOnNavigation: false
* })
* ]);
*
* await page.goto('https://playwright.dev/');
*
* const [jsCoverage, cssCoverage] = await Promise.all([
* page.coverage.stopJSCoverage(),
* page.coverage.stopCSSCoverage()
* ]);
* const coverageData = [... jsCoverage, ... cssCoverage];
*
* const coverageReport = MCR({
* name: 'My Coverage Report',
* outputDir: './coverage-reports',
* reports: ['v8', 'console-details']
* });
* await coverageReport.add(coverageData);
* await coverageReport.generate();
*
* await browser.close();
* })();
* ```
*
*/ */
export interface Coverage { export interface Coverage {
/** /**