/// <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; }
/// <summary> /// Listener event for any unhandled exceptions. /// </summary> /// <param name="sender">Sender object instance.</param> /// <param name="e">Event arguments.</param> private void GlobalUnhandledExceptionListener(object sender, EventArgs e) { if (DispatcherStack.CurrentCompositeWorkItem is CompositeWorkItem) { CompositeWorkItem cd = (CompositeWorkItem)DispatcherStack.CurrentCompositeWorkItem; Exception exception = GlobalExceptionHandler.GetExceptionObject(e); cd.WorkItemException(exception); GlobalExceptionHandler.ChangeExceptionBubbling(e, /* handled */ true); } else { GlobalExceptionHandler.ChangeExceptionBubbling(e, /* handled */ false); } }