Ejemplo n.º 1
0
        private static TestRunner MakeRunnerFromCommandLine(ConsoleOptions options)
        {
            ConsoleOptions.DomainUsage domainUsage = options.domain;
            if (domainUsage == ConsoleOptions.DomainUsage.Default)
            {
                domainUsage = options.ParameterCount == 1
                                        ? ConsoleOptions.DomainUsage.Single
                                        : ConsoleOptions.DomainUsage.Multiple;
            }

            TestRunner testRunner = null;

            switch (domainUsage)
            {
            case ConsoleOptions.DomainUsage.None:
                testRunner = new NUnit.Core.RemoteTestRunner();
                // Make sure that addins are available
                CoreExtensions.Host.AddinRegistry = Services.AddinRegistry;
                break;

            case ConsoleOptions.DomainUsage.Single:
                testRunner = new TestDomain();
                break;

            case ConsoleOptions.DomainUsage.Multiple:
                testRunner = new MultipleTestDomainRunner();
                break;
            }

            TestPackage package;

            if (options.IsTestProject)
            {
                NUnitProject project    = NUnitProject.LoadProject((string)options.Parameters[0]);
                string       configName = options.config;
                if (configName != null)
                {
                    project.SetActiveConfig(configName);
                }

                package = project.MakeTestPackage();
                if (options.IsFixture)
                {
                    package.TestName = options.fixture;
                }
            }
            else if (options.Parameters.Count == 1)
            {
                package = new TestPackage((string)options.Parameters[0]);
            }
            else
            {
                package = new TestPackage("UNNAMED", options.Parameters);
            }

            if (options.IsFixture)
            {
                package.TestName = options.fixture;
            }
            package.Settings["ShadowCopyFiles"]   = !options.noshadow;
            package.Settings["UseThreadedRunner"] = !options.nothread;
            testRunner.Load(package);

            return(testRunner);
        }