/// <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> /// Run selected tests and return a test result. The test is run synchronously, /// and the listener interface is notified as it progresses. /// </summary> /// <param name="listener">Interface to receive EventListener notifications.</param> /// <param name="filter">A test filter used to select tests to be run</param> /// <returns></returns> public ITestResult Run(ITestListener listener, ITestFilter filter) { TestExecutionContext context = new TestExecutionContext(); if (this._settings.ContainsKey("WorkDirectory")) { context.WorkDirectory = (string)this._settings["WorkDirectory"]; } else { context.WorkDirectory = Environment.CurrentDirectory; } context.Listener = listener; WorkItem workItem = new CompositeWorkItem(_loadedTest, filter); workItem.Execute(context); while (workItem.State != WorkItemState.Complete) { System.Threading.Thread.Sleep(5); } return(workItem.Result); }
public static TestResult RunTestFixture(Type type) { TestSuite suite = MakeFixture(type); TestExecutionContext context = new TestExecutionContext(); context.TestObject = null; CompositeWorkItem work = new CompositeWorkItem(suite, context, TestFilter.Empty); return(ExecuteAndWaitForResult(work)); }
public static CompositeWorkItem GenerateWorkItem(TestSuite suite, object testObject) { TestExecutionContext context = new TestExecutionContext(); context.TestObject = testObject; CompositeWorkItem work = (CompositeWorkItem)WorkItem.CreateWorkItem(suite, TestFilter.Empty); work.InitializeContext(context); work.Execute(); // TODO: Replace with an event - but not while method is static while (work.State != WorkItemState.Complete) { #if PORTABLE System.Threading.Tasks.Task.Delay(1); #else Thread.Sleep(1); #endif } return(work); }
public static TestResult RunTestFixture(Type type) { TestSuite suite = MakeFixture(type); TestExecutionContext context = new TestExecutionContext(); context.TestObject = null; CompositeWorkItem work = new CompositeWorkItem(suite, TestFilter.Empty); return ExecuteAndWaitForResult(work, context); }