diff --git a/test/coverage-test/coverage-test/coverage.test.ts b/test/coverage-test/coverage-test/coverage.c8.test.ts similarity index 90% rename from test/coverage-test/coverage-test/coverage.test.ts rename to test/coverage-test/coverage-test/coverage.c8.test.ts index 1cf39650795f..75b544526efb 100644 --- a/test/coverage-test/coverage-test/coverage.test.ts +++ b/test/coverage-test/coverage-test/coverage.c8.test.ts @@ -2,7 +2,7 @@ import fs from 'fs' import { resolve } from 'pathe' import { expect, test } from 'vitest' -test('coverage', async () => { +test('coverage c8', async () => { const coveragePath = resolve('./coverage/tmp/') const stat = fs.statSync(coveragePath) expect(stat.isDirectory()).toBe(true) diff --git a/test/coverage-test/coverage-test/coverage.istanbul.test.ts b/test/coverage-test/coverage-test/coverage.istanbul.test.ts new file mode 100644 index 000000000000..c2188e16ec90 --- /dev/null +++ b/test/coverage-test/coverage-test/coverage.istanbul.test.ts @@ -0,0 +1,24 @@ +import fs from 'fs' +import { resolve } from 'pathe' +import { expect, test } from 'vitest' + +test('istanbul html report', async () => { + const coveragePath = resolve('./coverage') + const files = fs.readdirSync(coveragePath) + + expect(files).toContain('index.html') + expect(files).toContain('index.ts.html') + expect(files).toContain('Hello.vue.html') +}) + +test('istanbul lcov report', async () => { + const coveragePath = resolve('./coverage') + const files = fs.readdirSync(coveragePath) + + expect(files).toContain('lcov.info') + + const lcovReport = resolve('./coverage/lcov-report') + const lcovReportFiles = fs.readdirSync(lcovReport) + + expect(lcovReportFiles).toContain('index.html') +}) diff --git a/test/coverage-test/package.json b/test/coverage-test/package.json index adbdb3dd5f90..0d120fd09f97 100644 --- a/test/coverage-test/package.json +++ b/test/coverage-test/package.json @@ -2,12 +2,19 @@ "name": "@vitest/test-coverage", "private": true, "scripts": { - "test": "npm run test:thread && npm run test:nothread", - "coverage": "vitest run --coverage", - "coverage:thread": "cross-env THREAD=true vitest run --coverage", - "coverage-test": "vitest -c vitest.config-coverage.ts run", - "test:thread": "npm run coverage:thread && npm run coverage-test", - "test:nothread": "npm run coverage && npm run coverage-test" + "test": "npm run test:c8 && npm run test:istanbul", + "test:c8": "npm run test:thread:c8 && npm run test:nothread:c8", + "coverage:c8": "vitest run --coverage.provider c8", + "coverage:thread:c8": "cross-env THREAD=true vitest run --coverage.provider c8", + "coverage-test:c8": "vitest -c vitest.config-c8-coverage.ts run", + "test:thread:c8": "npm run coverage:thread:c8 && npm run coverage-test:c8", + "test:nothread:c8": "npm run coverage:c8 && npm run coverage-test:c8", + "test:istanbul": "npm run test:thread:istanbul && npm run test:nothread:istanbul", + "coverage:istanbul": "vitest run --coverage.provider istanbul", + "coverage:thread:istanbul": "cross-env THREAD=true vitest run --coverage.provider istanbul", + "coverage-test:istanbul": "vitest -c vitest.config-istanbul-coverage.ts run", + "test:thread:istanbul": "npm run coverage:thread:istanbul && npm run coverage-test:istanbul", + "test:nothread:istanbul": "npm run coverage:istanbul && npm run coverage-test:istanbul" }, "devDependencies": { "@vitejs/plugin-vue": "^3.0.1", diff --git a/test/coverage-test/vitest.config-coverage.ts b/test/coverage-test/vitest.config-c8-coverage.ts similarity index 73% rename from test/coverage-test/vitest.config-coverage.ts rename to test/coverage-test/vitest.config-c8-coverage.ts index cf8df9d72998..0e9e69239b76 100644 --- a/test/coverage-test/vitest.config-coverage.ts +++ b/test/coverage-test/vitest.config-c8-coverage.ts @@ -3,7 +3,7 @@ import { defineConfig } from 'vite' export default defineConfig({ test: { include: [ - './coverage-test/*.test.ts', + './coverage-test/*.c8.test.ts', ], }, }) diff --git a/test/coverage-test/vitest.config-istanbul-coverage.ts b/test/coverage-test/vitest.config-istanbul-coverage.ts new file mode 100644 index 000000000000..620af8701b8b --- /dev/null +++ b/test/coverage-test/vitest.config-istanbul-coverage.ts @@ -0,0 +1,9 @@ +import { defineConfig } from 'vite' + +export default defineConfig({ + test: { + include: [ + './coverage-test/*.istanbul.test.ts', + ], + }, +}) diff --git a/test/coverage-test/vitest.config.ts b/test/coverage-test/vitest.config.ts index 3944cd39f032..3d4e9cf640f3 100644 --- a/test/coverage-test/vitest.config.ts +++ b/test/coverage-test/vitest.config.ts @@ -16,5 +16,10 @@ export default defineConfig({ exclude: [ 'coverage-test/*.test.ts', ], + coverage: { + enabled: true, + clean: true, + reporter: ['html', 'text', 'lcov'], + }, }, })