diff --git a/news/2 Fixes/1759.md b/news/2 Fixes/1759.md new file mode 100644 index 000000000000..4938502ae95f --- /dev/null +++ b/news/2 Fixes/1759.md @@ -0,0 +1 @@ +When debugging unit tests, use the `env` file configured in `settings.json` under `python.envFile`. diff --git a/src/client/unittests/common/debugLauncher.ts b/src/client/unittests/common/debugLauncher.ts index 12cc2f59cb83..79654590eaf8 100644 --- a/src/client/unittests/common/debugLauncher.ts +++ b/src/client/unittests/common/debugLauncher.ts @@ -26,13 +26,12 @@ export class DebugLauncher implements ITestDebugLauncher { } const cwd = cwdUri ? cwdUri.fsPath : workspaceFolder.uri.fsPath; - const configurationService = this.serviceContainer.get(IConfigurationService).getSettings(Uri.file(cwd)); - const useExperimentalDebugger = configurationService.unitTest.useExperimentalDebugger === true; + const configSettings = this.serviceContainer.get(IConfigurationService).getSettings(Uri.file(cwd)); + const useExperimentalDebugger = configSettings.unitTest.useExperimentalDebugger === true; const debugManager = this.serviceContainer.get(IDebugService); const debuggerType = useExperimentalDebugger ? 'pythonExperimental' : 'python'; const debugArgs = this.fixArgs(options.args, options.testProvider, useExperimentalDebugger); const program = this.getTestLauncherScript(options.testProvider, useExperimentalDebugger); - return debugManager.startDebugging(workspaceFolder, { name: 'Debug Unit Test', type: debuggerType, @@ -41,6 +40,7 @@ export class DebugLauncher implements ITestDebugLauncher { cwd, args: debugArgs, console: 'none', + envFile: configSettings.envFile, debugOptions: [DebugOptions.RedirectOutput] }).then(() => void (0)); } diff --git a/src/test/unittests/common/debugLauncher.test.ts b/src/test/unittests/common/debugLauncher.test.ts index 82a6299e4b83..c4d5a3520684 100644 --- a/src/test/unittests/common/debugLauncher.test.ts +++ b/src/test/unittests/common/debugLauncher.test.ts @@ -27,6 +27,7 @@ suite('Unit Tests - Debug Launcher', () => { let debugLauncher: DebugLauncher; let debugService: TypeMoq.IMock; let workspaceService: TypeMoq.IMock; + let settings: TypeMoq.IMock; setup(async () => { const serviceContainer = TypeMoq.Mock.ofType(); const configService = TypeMoq.Mock.ofType(); @@ -38,7 +39,7 @@ suite('Unit Tests - Debug Launcher', () => { workspaceService = TypeMoq.Mock.ofType(); serviceContainer.setup(c => c.get(TypeMoq.It.isValue(IWorkspaceService))).returns(() => workspaceService.object); - const settings = TypeMoq.Mock.ofType(); + settings = TypeMoq.Mock.ofType(); configService.setup(c => c.getSettings(TypeMoq.It.isAny())).returns(() => settings.object); unitTestSettings = TypeMoq.Mock.ofType(); @@ -51,10 +52,12 @@ suite('Unit Tests - Debug Launcher', () => { args: string[], console, debugOptions: DebugOptions[], testProvider: TestProvider, useExperimentalDebugger: boolean) { + const envFile = __filename; + settings.setup(p => p.envFile).returns(() => envFile); const debugArgs = testProvider === 'unittest' && useExperimentalDebugger ? args.filter(item => item !== '--debug') : args; debugService.setup(d => d.startDebugging(TypeMoq.It.isValue(workspaceFolder), - TypeMoq.It.isObjectWith({ name, type, request, program, cwd, args: debugArgs, console, debugOptions }))) + TypeMoq.It.isObjectWith({ name, type, request, program, cwd, args: debugArgs, console, envFile, debugOptions }))) .returns(() => Promise.resolve(undefined as any)) .verifiable(TypeMoq.Times.once()); }