diff --git a/packages/worker/src/index.ts b/packages/worker/src/index.ts
index c71a4ba..bc5df58 100644
--- a/packages/worker/src/index.ts
+++ b/packages/worker/src/index.ts
@@ -15,10 +15,7 @@ export async function initVitest(
emitter: WorkerWSEventEmitter,
) {
const meta = data.meta
- const reporter = new VSCodeReporter({
- setupFilePaths: meta.setupFilePaths,
- debug: data.debug,
- })
+ const reporter = new VSCodeReporter(meta, data.debug)
let stdout: Writable | undefined
let stderr: Writable | undefined
@@ -67,14 +64,6 @@ export async function initVitest(
reporter: undefined,
ui: false,
includeTaskLocation: true,
- execArgv: meta.pnpApi && meta.pnpLoader
- ? [
- '--require',
- meta.pnpApi,
- '--experimental-loader',
- meta.pnpLoader,
- ]
- : [],
inspect: typeof data.debug === 'object'
? `${data.debug.host}:${data.debug.port}`
: undefined,
diff --git a/packages/worker/src/reporter.ts b/packages/worker/src/reporter.ts
index d4993a9..0768772 100644
--- a/packages/worker/src/reporter.ts
+++ b/packages/worker/src/reporter.ts
@@ -3,6 +3,7 @@ import type { VitestWorkerRPC, WorkerInitMetadata, WorkerRunnerOptions } from 'v
import type {
BrowserCommand,
Reporter,
+ ResolvedConfig,
RunnerTestFile,
TestModule,
TestProject,
@@ -13,23 +14,27 @@ import type {
import { parseErrorStacktrace } from '@vitest/utils/source-map'
import { ExtensionWorker } from './worker'
-interface VSCodeReporterOptions {
- setupFilePaths: WorkerInitMetadata['setupFilePaths']
- debug: WorkerRunnerOptions['debug']
-}
-
export class VSCodeReporter implements Reporter {
public rpc!: VitestWorkerRPC
private vitest!: VitestCore
private setupFilePaths: WorkerInitMetadata['setupFilePaths']
private debug: WorkerRunnerOptions['debug']
+ private execArgv: string[] = []
private debuggerAttached: boolean | undefined = undefined
- constructor(options: VSCodeReporterOptions) {
- this.setupFilePaths = options.setupFilePaths
- this.debug = options.debug
+ constructor(meta: WorkerInitMetadata, debug: WorkerRunnerOptions['debug']) {
+ this.setupFilePaths = meta.setupFilePaths
+ this.debug = debug
+ if (meta.pnpApi && meta.pnpLoader) {
+ this.execArgv.push(
+ '--require',
+ meta.pnpApi,
+ '--experimental-loader',
+ meta.pnpLoader,
+ )
+ }
}
onInit(vitest: VitestCore) {
@@ -38,6 +43,7 @@ export class VSCodeReporter implements Reporter {
vitest.projects.forEach((project) => {
this.ensureSetupFileIsAllowed(project.vite.config)
+ this.ensurePnpSuported(project.config)
})
}
@@ -161,6 +167,10 @@ export class VSCodeReporter implements Reporter {
})
}
+ ensurePnpSuported(config: ResolvedConfig) {
+ config.execArgv.push(...this.execArgv)
+ }
+
configureBrowserDebugging(vitest: VitestCore) {
ExtensionWorker.emitter.on('onBrowserDebug', (fullfilled) => {
this.debuggerAttached = fullfilled
diff --git a/samples/basic-v4/vitest.config.ts b/samples/basic-v4/vitest.config.ts
index eeae7f5..df287a4 100644
--- a/samples/basic-v4/vitest.config.ts
+++ b/samples/basic-v4/vitest.config.ts
@@ -1,4 +1,4 @@
-///
+///
// Configure Vitest (https://vitest.dev/config)
diff --git a/samples/basic/vitest.config.ts b/samples/basic/vitest.config.ts
index eeae7f5..df287a4 100644
--- a/samples/basic/vitest.config.ts
+++ b/samples/basic/vitest.config.ts
@@ -1,4 +1,4 @@
-///
+///
// Configure Vitest (https://vitest.dev/config)