modified: .gitignore
modified: .vscode/launch.json new file: e2e/playwright-collect-coverage.spec.ts modified: package-lock.json modified: package.json modified: playwright.config.ts new file: scripts/merge-lcov.cjs new file: scripts/normalize-lcov.cjs new file: scripts/playwright-collect-coverage.cjs new file: scripts/remap-and-report.cjs modified: vite.config.ts new file: vitest.config.ts
This commit is contained in:
Executable
+23
@@ -0,0 +1,23 @@
|
||||
// tests/playwright-collect-coverage.js
|
||||
const fs = require('fs');
|
||||
const path = require('path');
|
||||
const { test } = require('@playwright/test');
|
||||
|
||||
test.afterEach(async ({ page }, testInfo) => {
|
||||
try {
|
||||
// evaluate coverage from the page
|
||||
const coverage = await page.evaluate(() => (globalThis.__coverage__ || {}));
|
||||
if (coverage && Object.keys(coverage).length) {
|
||||
const dir = path.join(process.cwd(), '.nyc_output');
|
||||
fs.mkdirSync(dir, { recursive: true });
|
||||
|
||||
// unique file per worker/test
|
||||
const filename = path.join(dir, `coverage-e2e-${process.pid}-${Date.now()}.json`);
|
||||
fs.writeFileSync(filename, JSON.stringify(coverage));
|
||||
console.log('Wrote coverage:', filename);
|
||||
}
|
||||
} catch (err) {
|
||||
// don't fail tests if coverage collection fails
|
||||
console.warn('Failed to collect coverage from page:', err.message || err);
|
||||
}
|
||||
});
|
||||
Reference in New Issue
Block a user