Exemplo n.º 1
0
        internal TestAssemblySettings GetSettings(string source)
        {
            var testAssemblySettings = new TestAssemblySettings();

            // Load the source.
            var testAssembly = PlatformServiceProvider.Instance.FileOperations.LoadAssembly(source, isReflectionOnly: false);

            var parallelizeAttribute = this.reflectHelper.GetParallelizeAttribute(testAssembly);

            if (parallelizeAttribute != null)
            {
                testAssemblySettings.Workers = parallelizeAttribute.Workers;
                testAssemblySettings.Scope   = parallelizeAttribute.Scope;

                if (testAssemblySettings.Workers == 0)
                {
                    testAssemblySettings.Workers = Environment.ProcessorCount;
                }
            }

            testAssemblySettings.CanParallelizeAssembly = !this.reflectHelper.IsDoNotParallelizeSet(testAssembly);

            var classCleanupSequencingAttribute = this.reflectHelper.GetClassCleanupAttribute(testAssembly);

            if (classCleanupSequencingAttribute != null)
            {
                testAssemblySettings.ClassCleanupLifecycle = classCleanupSequencingAttribute.LifecyclePosition;
            }

            return(testAssemblySettings);
        }
Exemplo n.º 2
0
        private void InitializeClassCleanupManager(
            string source,
            UnitTestRunner testRunner,
            ICollection <TestCase> testsToRun,
            TestAssemblySettings sourceSettings)
        {
            var unitTestElements = testsToRun.Select(e => e.ToUnitTestElement(source)).ToArray();

            testRunner.InitializeClassCleanupManager(unitTestElements, sourceSettings.ClassCleanupLifecycle);
        }
Exemplo n.º 3
0
 private void InitializeClassCleanupManager(string source, UnitTestRunner testRunner, ICollection <TestCase> testsToRun, TestAssemblySettings sourceSettings)
 {
     try
     {
         var unitTestElements = testsToRun.Select(e => e.ToUnitTestElement(source)).ToArray();
         testRunner.InitializeClassCleanupManager(unitTestElements, (int)sourceSettings.ClassCleanupLifecycle);
     }
     catch (Exception ex)
     {
         // source might not support this if it's legacy make sure it's supported by checking for the type
         if (ex.GetType().FullName != "System.Runtime.Remoting.RemotingException")
         {
             throw;
         }
     }
 }