protected override ITestFrameworkExecutor CreateExecutor(AssemblyName assemblyName) { IHost? host = null; Exception?ex = null; try { var startup = StartupLoader.CreateStartup(StartupLoader.GetStartupType(assemblyName)); if (startup == null) { return(new XunitTestFrameworkExecutor(assemblyName, SourceInformationProvider, DiagnosticMessageSink)); } var hostBuilder = StartupLoader.CreateHostBuilder(startup, assemblyName) ?? new HostBuilder().ConfigureHostConfiguration(builder => builder.AddInMemoryCollection(new Dictionary <string, string> { { HostDefaults.ApplicationKey, assemblyName.Name } })); StartupLoader.ConfigureHost(hostBuilder, startup); StartupLoader.ConfigureServices(hostBuilder, startup); host = hostBuilder.ConfigureServices(services => services .AddSingleton(DiagnosticMessageSink) .TryAddSingleton <ITestOutputHelperAccessor, TestOutputHelperAccessor>()) .Build(); StartupLoader.Configure(host.Services, startup); } catch (Exception e) { ex = e; } return(new DependencyInjectionTestFrameworkExecutor(host, ex, assemblyName, SourceInformationProvider, DiagnosticMessageSink)); }