public virtual List<ITestClass> GetTestClasses(IAssembly assembly, TestClassInstanceDictionary instances) { List<ITestClass> classes = new List<ITestClass>(assembly.GetTestClasses()); FilterTestClasses(classes, instances); SortTestClasses(classes); return classes; }
/// <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(); }
public override List<ITestClass> GetTestClasses(IAssembly assembly, TestClassInstanceDictionary instances) { return new List<ITestClass> { _test }; }
public override List<ITestClass> GetTestClasses(IAssembly assembly, TestClassInstanceDictionary instances) { List<ITestClass> result = base.GetTestClasses(assembly, instances); int i = 0, movedClassCount = 0; while(i < result.Count) { ITestClass testClass = result[i]; if(testClass.Type.GetCustomAttributes(typeof(RunFirstAttribute), true).Length > 0 && result.IndexOf(testClass) != movedClassCount && !TestHelper.IsGUI()) { result.Remove(testClass); result.Insert(movedClassCount++, testClass); } i++; } return result; }
public override List <ITestClass> GetTestClasses(IAssembly assembly, TestClassInstanceDictionary instances) { List <ITestClass> result = base.GetTestClasses(assembly, instances); int i = 0, movedClassCount = 0; while (i < result.Count) { ITestClass testClass = result[i]; if (testClass.Type.GetCustomAttributes(typeof(RunFirstAttribute), true).Length > 0 && result.IndexOf(testClass) != movedClassCount && !TestHelper.IsGUI()) { result.Remove(testClass); result.Insert(movedClassCount++, testClass); } i++; } return(result); }
private void FilterByRuntimeVersion (IList<ITestClass> classes, TestClassInstanceDictionary instances) { List<ITestClass> emptyTests = new List<ITestClass>(); foreach (ITestClass test in classes) { object instance = instances.GetInstance(test.Type); ICollection<ITestMethod> methods = GetTestMethods(test, instance); FilterByRuntimeVersion (methods); if (methods.Count == 0) { emptyTests.Add(test); } } if (emptyTests.Count > 0) { foreach (ITestClass test in emptyTests) { classes.Remove(test); } } }
/// <summary> /// Apply tag filtering. /// </summary> /// <param name="classes">List of test classes.</param> /// <param name="instances">Test class instance dictionary.</param> protected override void FilterCustomTestClasses(IList<ITestClass> classes, TestClassInstanceDictionary instances) { if (string.IsNullOrEmpty(TagExpression)) { return; } // Temporarily apply to the methods as well. If the class has no // methods that were matched in the expression, then cut the // class from the run. List<ITestClass> emptyTests = new List<ITestClass>(); foreach (ITestClass test in classes) { object instance = instances.GetInstance(test.Type); ICollection<ITestMethod> methods = GetTestMethods(test, instance); TagManager tm = new TagManager(test.Type, methods); ApplyExpression(tm, methods); if (methods.Count == 0) { emptyTests.Add(test); } } if (emptyTests.Count > 0) { foreach (ITestClass test in emptyTests) { classes.Remove(test); } } if (!_hasLoggedWarning) { UnitTestHarness.LogWriter.Information(string.Format(CultureInfo.InvariantCulture, Properties.UnitTestMessage.TagTestRunFilter_TaggingInUse, TagExpression)); _hasLoggedWarning = true; } }
/// <summary> /// Exclusive attributes are not supported when also using tagging. /// </summary> /// <param name="classes">List of test classes.</param> /// <param name="instances">Test class instance dictionary.</param> protected override void FilterExclusiveTestClasses(IList<ITestClass> classes, TestClassInstanceDictionary instances) { }
/// <summary> /// Perform any custom filtering that the TestRunFilter needs. /// </summary> /// <param name="classes">List of test classes.</param> /// <param name="instances">Test class instance dictionary.</param> protected virtual void FilterCustomTestClasses(IList<ITestClass> classes, TestClassInstanceDictionary instances) { }
/// <summary> /// Filter out tests based on the standard-supported methods. /// </summary> /// <param name="classes">List of test classes.</param> /// <param name="instances">Test class instance dictionary.</param> protected void FilterTestClasses(IList<ITestClass> classes, TestClassInstanceDictionary instances) { FilterExclusiveTestClasses(classes, instances); FilterLegacyTestClasses(classes, instances); FilterCustomTestClasses(classes, instances); }
/// <summary> /// If any exclusive classes are found, filter them. /// </summary> /// <param name="classes">List of test classes.</param> /// <param name="instances">Test class instance dictionary.</param> protected virtual void FilterExclusiveTestClasses(IList<ITestClass> classes, TestClassInstanceDictionary instances) { TestClassHelper.FilterExclusiveClasses(classes, UnitTestHarness.LogWriter); }
/// <summary> /// If specific string-contains filters are present. /// </summary> /// <param name="classes">List of test classes.</param> /// <param name="instances">Test class instance dictionary.</param> protected virtual void FilterLegacyTestClasses(IList<ITestClass> classes, TestClassInstanceDictionary instances) { if (_settings != null && _settings.TestClassesToRun != null) { TestClassHelper.FilterTestsToRun(classes, _settings.TestClassesToRun); } if (_settings != null && _settings.Parameters != null) { TestClassHelper.FilterByFilterClassParameter(_settings.Parameters, classes); } }
protected internal override void FilterExclusiveTestClasses(IList<ITestClass> classes, TestClassInstanceDictionary instances) { subfilter.FilterExclusiveTestClasses (classes, instances); FilterByRuntimeVersion (classes, instances); }
public override List<ITestClass> GetTestClasses(IAssembly assembly, TestClassInstanceDictionary instances) { return base.GetTestClasses(assembly, instances); }