javascript / expert
Snippet
Programmatic V8 Coverage Collection via node:inspector
Node.js exposes V8's internal profiler capabilities directly via the built-in node:inspector module. Custom testing frameworks can open an inspector session to programmatically toggle precise coverage tracking, execute test suites, and extract exact function call counts and statement coverage ranges without relying on external transpilation tools.
snippet.js
javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
const inspector = require('node:inspector');const session = new inspector.Session();session.connect();async function collectV8Coverage(testFn) {session.post('Profiler.enable');session.post('Profiler.startPreciseCoverage', { callCount: true, detailed: true });await testFn();return new Promise((resolve, reject) => {session.post('Profiler.takePreciseCoverage', (err, { result }) => {session.post('Profiler.stopPreciseCoverage');session.post('Profiler.disable');session.disconnect();if (err) return reject(err);resolve(result);});});}
nodejs
Breakdown
1
const session = new inspector.Session();
Creates a new inspector session connected to the current Node.js execution process.
2
session.post('Profiler.enable');
Enables the V8 Profiler domain to prepare for coverage instrumentation.
3
session.post('Profiler.startPreciseCoverage', ...)
Starts precise call-count and byte-offset coverage tracking inside the V8 engine.
4
session.post('Profiler.takePreciseCoverage', ...)
Fetches the raw V8 coverage tree detailing exact covered range offsets and execution counts.