···101101102102 expect(files).toContain('junit.xml')
103103})
104104+105105+test('virtual files should be excluded', () => {
106106+ const files = fs.readdirSync(resolve('./coverage'))
107107+ const srcFiles = fs.readdirSync(resolve('./coverage/src'))
108108+109109+ for (const file of [...files, ...srcFiles]) {
110110+ expect(file).not.toContain('virtual:')
111111+112112+ // Vitest in node
113113+ expect(file).not.toContain('__x00__')
114114+ expect(file).not.toContain('\0')
115115+116116+ // Vitest browser
117117+ expect(file).not.toContain('\x00')
118118+ }
119119+})
+12
test/coverage-test/test/coverage.test.ts
···11import { expect, test } from 'vitest'
22+33+// @ts-expect-error -- untyped virtual file provided by custom plugin
44+import virtualFile1 from 'virtual:vitest-custom-virtual-file-1'
55+26import { implicitElse } from '../src/implicitElse'
37import { useImportEnv } from '../src/importEnv'
48import { second } from '../src/function-count'
59import { runDynamicFileCJS, runDynamicFileESM } from '../src/dynamic-files'
1010+1111+// @ts-expect-error -- untyped virtual file provided by custom plugin
1212+import virtualFile2 from '\0vitest-custom-virtual-file-2'
613714// Browser mode crashes with dynamic files. Enable this when browser mode works.
815// To keep istanbul report consistent between browser and node, skip dynamic tests when istanbul is used.
···39464047test.skipIf(skipDynamicFiles)('run dynamic CJS file', async () => {
4148 await runDynamicFileCJS()
4949+})
5050+5151+test('virtual file imports', () => {
5252+ expect(virtualFile1).toBe('This file should be excluded from coverage report #1')
5353+ expect(virtualFile2).toBe('This file should be excluded from coverage report #2')
4254})