export async function resolveLaunchConfigurationForRunner()

in src/utils/launchUtils.ts [16:75]


export async function resolveLaunchConfigurationForRunner(runner: BaseRunner, testContext: IRunTestContext, config?: IExecutionConfig): Promise<DebugConfiguration> {
    const launchArguments: IJUnitLaunchArguments = await getLaunchArguments(testContext);

    if (config && config.vmArgs) {
        launchArguments.vmArguments.push(...config.vmArgs.filter(Boolean));
    } else if (config && config.vmargs) {
        launchArguments.vmArguments.push(...config.vmargs.filter(Boolean));
    }

    if (testContext.kind === TestKind.TestNG) {
        return {
            name: `Launch Java Tests - ${testContext.testItems[0].label}`,
            type: 'java',
            request: 'launch',
            mainClass: 'com.microsoft.java.test.runner.Launcher',
            projectName: launchArguments.projectName,
            cwd: config && config.workingDirectory ? config.workingDirectory : launchArguments.workingDirectory,
            classPaths: [
                ...config?.classPaths || [],
                ...launchArguments.classpath || [],
                path.join(extensionContext.extensionPath, 'server', 'com.microsoft.java.test.runner-jar-with-dependencies.jar'),
            ],
            modulePaths: [
                ...config?.modulePaths || [],
                ...launchArguments.modulepath || [],
            ],
            args: runner.getApplicationArgs(config),
            vmArgs: launchArguments.vmArguments,
            env: config?.env,
            envFile: config?.envFile,
            noDebug: !testContext.isDebug,
            sourcePaths: config?.sourcePaths,
            preLaunchTask: config?.preLaunchTask,
        };
    }

    return {
        name: `Launch Java Tests - ${testContext.testItems[0].label}`,
        type: 'java',
        request: 'launch',
        mainClass: launchArguments.mainClass,
        projectName: launchArguments.projectName,
        cwd: config && config.workingDirectory ? config.workingDirectory : launchArguments.workingDirectory,
        classPaths: [
            ...config?.classPaths || [],
            ...launchArguments.classpath || [],
        ],
        modulePaths: [
            ...config?.modulePaths || [],
            ...launchArguments.modulepath || [],
        ],
        args: launchArguments.programArguments,
        vmArgs: launchArguments.vmArguments,
        env: config?.env,
        envFile: config?.envFile,
        noDebug: !testContext.isDebug,
        sourcePaths: config?.sourcePaths,
        preLaunchTask: config?.preLaunchTask,
    };
}