private async Task <MockScriptHostManager> CreateAndStartScriptHostManager(string scriptLang, string functionName, TimeSpan timeout)
        {
            var functions = new Collection <string>();

            functions.Add(functionName);

            ScriptHostConfiguration config = new ScriptHostConfiguration()
            {
                RootScriptPath  = $@"TestScripts\{scriptLang}",
                FileLoggingMode = FileLoggingMode.Always,
                Functions       = functions,
                FunctionTimeout = timeout
            };

            var scriptHostManager = new MockScriptHostManager(config, new TestLoggerProviderFactory(_loggerProvider));

            ThreadPool.QueueUserWorkItem((s) => scriptHostManager.RunAndBlock());
            await TestHelpers.Await(() => scriptHostManager.State == ScriptHostState.Running);

            return(scriptHostManager);
        }
        private async Task<MockScriptHostManager> CreateAndStartScriptHostManager(string scriptLang, string functionName, TimeSpan timeout, TraceWriter traceWriter)
        {
            var functions = new Collection<string>();
            functions.Add(functionName);

            ScriptHostConfiguration config = new ScriptHostConfiguration()
            {
                RootScriptPath = $@"TestScripts\{scriptLang}",
                TraceWriter = traceWriter,
                FileLoggingMode = FileLoggingMode.Always,
                Functions = functions,
                FunctionTimeout = timeout
            };

            var scriptHostManager = new MockScriptHostManager(config);
            ThreadPool.QueueUserWorkItem((s) => scriptHostManager.RunAndBlock());
            await TestHelpers.Await(() => scriptHostManager.State == ScriptHostState.Running);

            return scriptHostManager;
        }