覆盖率
覆盖率收集了页面使用的JavaScript和CSS部分的相关信息。
一个使用JavaScript覆盖率生成页面加载的Istanbul报告示例:
note
覆盖率API仅在基于Chromium的浏览器上受支持。
const { chromium } = require('playwright');
const v8toIstanbul = require('v8-to-istanbul');
(async () => {
const browser = await chromium.launch();
const page = await browser.newPage();
await page.coverage.startJSCoverage();
await page.goto('https://chromium.org');
const coverage = await page.coverage.stopJSCoverage();
for (const entry of coverage) {
const converter = v8toIstanbul('', 0, { source: entry.source });
await converter.load();
converter.applyCoverage(entry.functions);
console.log(JSON.stringify(converter.toIstanbul()));
}
await browser.close();
})();
方法
startCSSCoverage
Added in: v1.11返回覆盖率已启动
用法
await coverage.startCSSCoverage();
await coverage.startCSSCoverage(options);
参数
返回
startJSCoverage
Added in: v1.11返回覆盖率已启动
note
匿名脚本是指没有关联URL的脚本。这些脚本是使用eval
或new Function
在页面上动态创建的。如果reportAnonymousScripts设置为true
,匿名脚本将以__playwright_evaluation_script__
作为其URL。
用法
await coverage.startJSCoverage();
await coverage.startJSCoverage(options);
参数
options
Object (optional)
返回
stopCSSCoverage
Added in: v1.11返回所有样式表的覆盖率报告数组
note
CSS覆盖率不包含没有sourceURLs的动态注入样式标签。
用法
await coverage.stopCSSCoverage();
返回
stopJSCoverage
Added in: v1.11返回所有脚本的覆盖率报告数组
note
JavaScript覆盖率默认不包含匿名脚本。但是,带有sourceURL的脚本会被报告。
用法
await coverage.stopJSCoverage();
返回