/// <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> /// 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> /// 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> /// 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)); }