@@ -3,8 +3,7 @@ import _ from "lodash";
33import fs from "fs-extra" ;
44import { Stats as RunnerStats } from "./stats" ;
55import { BaseTestplane } from "./base-testplane" ;
6- import type { MainRunner as NodejsEnvRunner } from "./runner" ;
7- import type { MainRunner as BrowserEnvRunner } from "./runner/browser-env" ;
6+ import type { MainRunner } from "./runner" ;
87import RuntimeConfig from "./config/runtime-config" ;
98import { MasterAsyncEvents , MasterEvents , MasterSyncEvents } from "./events" ;
109import eventsUtils from "./events/utils" ;
@@ -19,6 +18,7 @@ import { initDevServer } from "./dev-server";
1918import { ConfigInput } from "./config/types" ;
2019import { MasterEventHandler , Test , TestResult } from "./types" ;
2120import { preloadWebdriverIO } from "./utils/preload-utils" ;
21+ import { ViteServer } from "./runner/browser-env/vite/server" ;
2222
2323interface RunOpts {
2424 browsers : string [ ] ;
@@ -70,14 +70,16 @@ export interface Testplane {
7070export class Testplane extends BaseTestplane {
7171 protected failed : boolean ;
7272 protected failedList : FailedListItem [ ] ;
73- protected runner : NodejsEnvRunner | BrowserEnvRunner | null ;
73+ protected runner : MainRunner | null ;
74+ protected viteServer : ViteServer | null ;
7475
7576 constructor ( config ?: string | ConfigInput ) {
7677 super ( config ) ;
7778
7879 this . failed = false ;
7980 this . failedList = [ ] ;
8081 this . runner = null ;
82+ this . viteServer = null ;
8183 }
8284
8385 extendCli ( parser : Command ) : void {
@@ -91,6 +93,16 @@ export class Testplane extends BaseTestplane {
9193 configPath : this . _config . configPath ,
9294 } ) ;
9395
96+ if ( ! isRunInNodeJsEnv ( this . _config ) ) {
97+ try {
98+ this . viteServer = ViteServer . create ( this . _config ) ;
99+ await this . viteServer . start ( ) ;
100+ RuntimeConfig . getInstance ( ) . extend ( { viteBaseUrl : this . viteServer . baseUrl } ) ;
101+ } catch ( err ) {
102+ throw new Error ( `Vite server failed to start: ${ ( err as Error ) . message } ` ) ;
103+ }
104+ }
105+
94106 return super . _init ( ) ;
95107 }
96108
@@ -126,9 +138,7 @@ export class Testplane extends BaseTestplane {
126138 this . _config . system . mochaOpts . timeout = 0 ;
127139 }
128140
129- const RunnerClass = isRunInNodeJsEnv ( this . _config )
130- ? await import ( "./runner" ) . then ( m => m . MainRunner )
131- : await import ( "./runner/browser-env" ) . then ( m => m . MainRunner ) ;
141+ const RunnerClass = await import ( "./runner" ) . then ( m => m . MainRunner ) ;
132142
133143 const runner = RunnerClass . create ( this . _config , this . _interceptors ) ;
134144 this . runner = runner ;
0 commit comments