Esempio n. 1
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();
 }
Esempio n. 2
0
 /// <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;
 }
Esempio n. 3
0
        /// <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);
        }
Esempio n. 4
0
        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));
        }
Esempio n. 5
0
        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);
        }
Esempio n. 6
0
        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);
        }