private IEnumerable <IWorkerProvider> TestReadWorkerProviderFromConfig(IEnumerable <TestLanguageWorkerConfig> configs, ILogger testLogger, string language = null, Dictionary <string, string> keyValuePairs = null, bool appSvcEnv = false)
        {
            var workerPathSection = $"{LanguageWorkerConstants.LanguageWorkersSectionName}:{LanguageWorkerConstants.WorkersDirectorySectionName}";

            try
            {
                foreach (var workerConfig in configs)
                {
                    CreateWorkerFolder(rootPath, workerConfig);
                }

                IConfigurationRoot config = TestConfigBuilder(workerPathSection, keyValuePairs);

                var scriptHostConfig      = new ScriptHostConfiguration();
                var scriptSettingsManager = new ScriptSettingsManager(config);
                var configFactory         = new WorkerConfigFactory(config, testLogger);
                if (appSvcEnv)
                {
                    var testEnvVariables = new Dictionary <string, string>
                    {
                        { EnvironmentSettingNames.AzureWebsiteInstanceId, "123" },
                    };
                    using (var variables = new TestScopedSettings(scriptSettingsManager, testEnvVariables))
                    {
                        return(configFactory.GetWorkerProviders(testLogger, scriptSettingsManager, language: language));
                    }
                }
                return(configFactory.GetWorkerProviders(testLogger, scriptSettingsManager, language: language));
            }
            finally
            {
                DeleteTestDir(rootPath);
                DeleteTestDir(customRootPath);
            }
        }
        private IEnumerable <IWorkerProvider> TestReadWorkerProviderFromConfig(IEnumerable <TestLanguageWorkerConfig> configs, ILogger testLogger, string language = null, Dictionary <string, string> keyValuePairs = null)
        {
            var workerPathSection = $"{LanguageWorkerConstants.LanguageWorkersSectionName}:{LanguageWorkerConstants.WorkersDirectorySectionName}";

            try
            {
                foreach (var workerConfig in configs)
                {
                    CreateWorkerFolder(rootPath, workerConfig);
                }

                IConfigurationRoot config = TestConfigBuilder(workerPathSection, keyValuePairs);

                var scriptHostConfig      = new ScriptHostConfiguration();
                var scriptSettingsManager = new ScriptSettingsManager(config);
                var configFactory         = new WorkerConfigFactory(config, testLogger);

                return(configFactory.GetWorkerProviders(testLogger, scriptSettingsManager, language: language));
            }
            finally
            {
                DeleteTestDir(rootPath);
                DeleteTestDir(customRootPath);
            }
        }