A type to filter down complete sets of classes, tests and methods.
 /// <summary>
 /// A container type that handles an entire test class throughout the 
 /// test run.
 /// </summary>
 /// <param name="filter">Test run filter object.</param>
 /// <param name="testHarness">The unit test harness.</param>
 /// <param name="testClass">The test class metadata interface.</param>
 /// <param name="instance">The object instance.</param>
 /// <param name="provider">The unit test provider.</param>
 public TestClassManager(TestRunFilter filter, UnitTestHarness testHarness, ITestClass testClass, object instance, IUnitTestProvider provider) : base(testHarness, provider)
 {
     _filter = filter;
     _testClass = testClass;
     _testExecutionQueue = new CompositeWorkItem();
     _instance = instance;
 }
 /// <summary>
 /// Create a new assembly manager, takes in the harness, provider 
 /// reference and actual IAssembly object.
 /// </summary>
 /// <param name="runFilter">The test run filter object.</param>
 /// <param name="testHarness">Harness object.</param>
 /// <param name="provider">The unit test metadata provider.</param>
 /// <param name="testAssembly">The test assembly metadata object.</param>
 public AssemblyManager(TestRunFilter runFilter, UnitTestHarness testHarness, IUnitTestProvider provider, IAssembly testAssembly) : base(testHarness, provider)
 {
     _filter = runFilter;
     _assembly = testAssembly;
     _testClasses = new CompositeWorkItem();
     ClassInstances = new TestClassInstanceDictionary();
 }
 /// <summary>
 /// A container type that handles an entire test class throughout the
 /// test run.
 /// </summary>
 /// <param name="filter">Test run filter object.</param>
 /// <param name="testHarness">The unit test harness.</param>
 /// <param name="testClass">The test class metadata interface.</param>
 /// <param name="instance">The object instance.</param>
 /// <param name="provider">The unit test provider.</param>
 public TestClassManager(TestRunFilter filter, UnitTestHarness testHarness, ITestClass testClass, object instance, IUnitTestProvider provider) : base(testHarness, provider)
 {
     _filter             = filter;
     _testClass          = testClass;
     _testExecutionQueue = new CompositeWorkItem();
     _instance           = instance;
 }
Example #4
0
 /// <summary>
 /// Create a new assembly manager, takes in the harness, provider
 /// reference and actual IAssembly object.
 /// </summary>
 /// <param name="runFilter">The test run filter object.</param>
 /// <param name="testHarness">Harness object.</param>
 /// <param name="provider">The unit test metadata provider.</param>
 /// <param name="testAssembly">The test assembly metadata object.</param>
 public AssemblyManager(TestRunFilter runFilter, UnitTestHarness testHarness, IUnitTestProvider provider, IAssembly testAssembly) : base(testHarness, provider)
 {
     _filter        = runFilter;
     _assembly      = testAssembly;
     _testClasses   = new CompositeWorkItem();
     ClassInstances = new TestClassInstanceDictionary();
 }
        /// <summary>
        /// Enqueues a test assembly.
        /// </summary>
        /// <param name="testAssembly">The test assembly metadata.</param>
        /// <param name="runFilter">The run filter settings for the test assembly's run.</param>
        public void EnqueueTestAssembly(IAssembly testAssembly, TestRunFilter runFilter)
        {
            AssemblyManager assemblyManager = LogicFactory.CreateAssemblyManager(testAssembly.Provider, runFilter, testAssembly);

            _harnessTasks.Enqueue(assemblyManager);
            _knownTestMethods += CalculateTotalMethods(assemblyManager, testAssembly, runFilter);
            ++_validTestAssemblies;
        }
        /// <summary>
        /// Enqueues a message containing a test run filter.
        /// </summary>
        /// <param name="filter">The test run filter.</param>
        public void TestRunFilterSelected(TestRunFilter filter)
        {
            string     message = filter.TestRunName;
            LogMessage m       = Create(LogMessageType.TestInfrastructure, message);

            MarkUnitTestMessage(m);
            m[UnitTestLogDecorator.TestRunFilter] = filter;
            Enqueue(m);
        }
        /// <summary>
        /// Enqueue a test assembly from a simple Assembly reference.
        /// </summary>
        /// <param name="assembly">The test assembly.</param>
        /// <param name="runFilter">The run filter settings for the test assembly's run.</param>
        public void EnqueueTestAssembly(Assembly assembly, TestRunFilter runFilter)
        {
            IAssembly testAssembly = UnitTestProviders.GetAssemblyWrapper(this, assembly);

            if (testAssembly != null)
            {
                EnqueueTestAssembly(testAssembly, runFilter);
            }
        }
        /// <summary>
        /// Determine what test assemblies need to be executed. Enqueue tasks
        /// for the unit test assembly providers to run the tests.
        /// </summary>
        private void PrepareTestAssemblyTasks()
        {
            UnitTestSettings settings = Settings;
            TestRunFilter    filter   = CreateTestRunFilter(settings);

            foreach (Assembly assembly in Settings.TestAssemblies)
            {
                EnqueueTestAssembly(assembly, filter);
            }

            TestRunStartingEventArgs startingArguments = new TestRunStartingEventArgs(settings, filter)
            {
                TestHarnessName    = HarnessName,
                EnqueuedAssemblies = _validTestAssemblies,
            };

            OnTestRunStarting(startingArguments);
        }
 /// <summary>
 /// Creates a new TestClassManager.
 /// </summary>
 /// <param name="provider">The unit test provider.</param>
 /// <param name="filter">The run filter.</param>
 /// <param name="testClass">The test class metadata.</param>
 /// <param name="instance">The test class instance.</param>
 /// <returns>Returns a new TestClassManager.</returns>
 public TestClassManager CreateTestClassManager(IUnitTestProvider provider, TestRunFilter filter, ITestClass testClass, object instance)
 {
     return new TestClassManager(filter, _harness, testClass, instance, provider);
 }
 /// <summary>
 /// Initializes a new instance of the TestRunStartingEventArgs
 /// type.
 /// </summary>
 /// <param name="settings">The test run filter.</param>
 /// <param name="filter">The test run settings object.</param>
 public TestRunStartingEventArgs(UnitTestSettings settings, TestRunFilter filter)
     : base()
 {
     Settings      = settings;
     TestRunFilter = filter;
 }
        /// <summary>
        /// The run filter has been selected.
        /// </summary>
        /// <param name="logMessage">The log message object.</param>
        private void TestRunFilterSelected(LogMessage logMessage)
        {
            TestRunFilter filter = (TestRunFilter)logMessage[UnitTestLogDecorator.TestRunFilter];

            TestListName = filter.TestRunName;
        }
 /// <summary>
 /// Calculates the number of methods for a run.
 /// </summary>
 /// <param name="assemblyManager">The assembly manager.</param>
 /// <param name="assembly">The test assembly.</param>
 /// <param name="filter">The test run filter.</param>
 /// <returns>Returns the number of known methods returned.</returns>
 private static int CalculateTotalMethods(AssemblyManager assemblyManager, IAssembly assembly, TestRunFilter filter)
 {
     int total = 0;
     List<ITestClass> cls = filter.GetTestClasses(assembly, assemblyManager.ClassInstances);
     foreach (ITestClass test in cls)
     {
         object instance = assemblyManager.ClassInstances.GetInstance(test.Type);
         total += filter.GetTestMethods(test, instance).Count;
     }
     return total;
 }
 /// <summary>
 /// Enqueues a test assembly.
 /// </summary>
 /// <param name="testAssembly">The test assembly metadata.</param>
 /// <param name="runFilter">The run filter settings for the test assembly's run.</param>
 public void EnqueueTestAssembly(IAssembly testAssembly, TestRunFilter runFilter)
 {
     AssemblyManager assemblyManager = LogicFactory.CreateAssemblyManager(testAssembly.Provider, runFilter, testAssembly);
     _harnessTasks.Enqueue(assemblyManager);
     _knownTestMethods += CalculateTotalMethods(assemblyManager, testAssembly, runFilter);
     ++_validTestAssemblies;
 }
Example #14
0
 /// <summary>
 /// Creates a new AssemblyManager.
 /// </summary>
 /// <param name="provider">The unit test provider.</param>
 /// <param name="filter">The run filter.</param>
 /// <param name="assembly">The unit test assembly metadata object.</param>
 /// <returns>Returns a new AssemblyManager.</returns>
 public AssemblyManager CreateAssemblyManager(IUnitTestProvider provider, TestRunFilter filter, IAssembly assembly)
 {
     return(new AssemblyManager(filter, _harness, provider, assembly));
 }
 /// <summary>
 /// Creates a new AssemblyManager.
 /// </summary>
 /// <param name="provider">The unit test provider.</param>
 /// <param name="filter">The run filter.</param>
 /// <param name="assembly">The unit test assembly metadata object.</param>
 /// <returns>Returns a new AssemblyManager.</returns>
 public AssemblyManager CreateAssemblyManager(IUnitTestProvider provider, TestRunFilter filter, IAssembly assembly)
 {
     return new AssemblyManager(filter, _harness, provider, assembly);
 }
        /// <summary>
        /// Calculates the number of methods for a run.
        /// </summary>
        /// <param name="assemblyManager">The assembly manager.</param>
        /// <param name="assembly">The test assembly.</param>
        /// <param name="filter">The test run filter.</param>
        /// <returns>Returns the number of known methods returned.</returns>
        private static int CalculateTotalMethods(AssemblyManager assemblyManager, IAssembly assembly, TestRunFilter filter)
        {
            int total             = 0;
            List <ITestClass> cls = filter.GetTestClasses(assembly, assemblyManager.ClassInstances);

            foreach (ITestClass test in cls)
            {
                object instance = assemblyManager.ClassInstances.GetInstance(test.Type);
                total += filter.GetTestMethods(test, instance).Count;
            }
            return(total);
        }
 /// <summary>
 /// Initializes a new instance of the TestRunStartingEventArgs
 /// type.
 /// </summary>
 /// <param name="settings">The test run filter.</param>
 /// <param name="filter">The test run settings object.</param>
 public TestRunStartingEventArgs(UnitTestSettings settings, TestRunFilter filter)
     : base()
 {
     Settings = settings;
     TestRunFilter = filter;
 }
 /// <summary>
 /// Enqueues a message containing a test run filter.
 /// </summary>
 /// <param name="filter">The test run filter.</param>
 public void TestRunFilterSelected(TestRunFilter filter)
 {
     string message = filter.TestRunName;
     LogMessage m = Create(LogMessageType.TestInfrastructure, message);
     MarkUnitTestMessage(m);
     m[UnitTestLogDecorator.TestRunFilter] = filter;
     Enqueue(m);
 }
Example #19
0
 /// <summary>
 /// Creates a new TestClassManager.
 /// </summary>
 /// <param name="provider">The unit test provider.</param>
 /// <param name="filter">The run filter.</param>
 /// <param name="testClass">The test class metadata.</param>
 /// <param name="instance">The test class instance.</param>
 /// <returns>Returns a new TestClassManager.</returns>
 public TestClassManager CreateTestClassManager(IUnitTestProvider provider, TestRunFilter filter, ITestClass testClass, object instance)
 {
     return(new TestClassManager(filter, _harness, testClass, instance, provider));
 }
 /// <summary>
 /// Enqueue a test assembly from a simple Assembly reference.
 /// </summary>
 /// <param name="assembly">The test assembly.</param>
 /// <param name="runFilter">The run filter settings for the test assembly's run.</param>
 public void EnqueueTestAssembly(Assembly assembly, TestRunFilter runFilter)
 {
     IAssembly testAssembly = UnitTestProviders.GetAssemblyWrapper(this, assembly);
     if (testAssembly != null)
     {
         EnqueueTestAssembly(testAssembly, runFilter);
     }
 }