@@ -57,6 +57,8 @@ ws.addEventListener('open', async () => {
5757 const { getSafeTimers } = await importId ( 'vitest/utils' ) as typeof import ( 'vitest/utils' )
5858 const safeRpc = createSafeRpc ( client , getSafeTimers )
5959
60+ // @ts -expect-error untyped global for internal use
61+ globalThis . __vitest_browser__ = true
6062 // @ts -expect-error mocking vitest apis
6163 globalThis . __vitest_worker__ = {
6264 config,
@@ -82,11 +84,20 @@ async function runTests(paths: string[], config: any) {
8284 const viteClientPath = '/@vite/client'
8385 await import ( viteClientPath )
8486
85- const { startTests, setupCommonEnv, setupSnapshotEnvironment } = await importId ( 'vitest/browser' ) as typeof import ( 'vitest/browser' )
87+ const {
88+ startTests,
89+ setupCommonEnv,
90+ setupSnapshotEnvironment,
91+ takeCoverageInsideWorker,
92+ } = await importId ( 'vitest/browser' ) as typeof import ( 'vitest/browser' )
93+
94+ const executor = {
95+ executeId : ( id : string ) => importId ( id ) ,
96+ }
8697
8798 if ( ! runner ) {
8899 const { VitestTestRunner } = await importId ( 'vitest/runners' ) as typeof import ( 'vitest/runners' )
89- const BrowserRunner = createBrowserRunner ( VitestTestRunner )
100+ const BrowserRunner = createBrowserRunner ( VitestTestRunner , { takeCoverage : ( ) => takeCoverageInsideWorker ( config . coverage , executor ) } )
90101 runner = new BrowserRunner ( { config, browserHashMap } )
91102 }
92103
@@ -104,7 +115,8 @@ async function runTests(paths: string[], config: any) {
104115 const now = `${ new Date ( ) . getTime ( ) } `
105116 files . forEach ( i => browserHashMap . set ( i , now ) )
106117
107- await startTests ( files , runner )
118+ for ( const file of files )
119+ await startTests ( [ file ] , runner )
108120 }
109121 finally {
110122 await rpcDone ( )
0 commit comments