public static IFrontController Create(
            string assemblyFileName,
            string?configFileName             = null,
            bool shadowCopy                   = true,
            AppDomainSupport appDomainSupport = AppDomainSupport.Required)
        {
            var project         = new XunitProject();
            var projectAssembly = new XunitProjectAssembly(project)
            {
                AssemblyFilename = assemblyFileName,
                ConfigFilename   = configFileName,
            };

            projectAssembly.Configuration.AppDomain  = appDomainSupport;
            projectAssembly.Configuration.ShadowCopy = shadowCopy;

            return(Xunit2.ForDiscoveryAndExecution(projectAssembly, diagnosticMessageSink: new _NullMessageSink()));
        }
        public TdNetRunnerHelper(
            Assembly assembly,
            ITestListener testListener)
        {
            this.testListener = testListener;

            var assemblyFileName = assembly.GetLocalCodeBase();
            var project          = new XunitProject();

            projectAssembly = new XunitProjectAssembly(project)
            {
                Assembly         = assembly,
                AssemblyFilename = assemblyFileName,
                TargetFramework  = AssemblyUtility.GetTargetFramework(assemblyFileName)
            };
            projectAssembly.Configuration.ShadowCopy = false;
            ConfigReader.Load(projectAssembly.Configuration, assemblyFileName);

            var diagnosticMessageSink = new DiagnosticMessageSink(testListener, Path.GetFileNameWithoutExtension(assemblyFileName), projectAssembly.Configuration.DiagnosticMessagesOrDefault);

            frontController = Xunit2.ForDiscoveryAndExecution(projectAssembly, diagnosticMessageSink: diagnosticMessageSink);
            disposalTracker.Add(frontController);
        }