예제 #1
0
 private void Run(string path, TestNamespace ns, TestCaseFilter filter, TestReporter reporter)
 {
     reporter.BeginSuite(ns);
     foreach (var item in GetItemOrder(ns.Items))
     {
         string itemPath = path;
         if (itemPath != "")
         {
             itemPath += '.';
         }
         itemPath += item.Name;
         if (filter.Match(itemPath))
         {
             if (item is TestNamespace)
             {
                 Run(itemPath, item as TestNamespace, filter, reporter);
             }
             if (item is TestFixtureClass)
             {
                 Run(itemPath, item as TestFixtureClass, filter, reporter);
             }
         }
     }
     reporter.EndSuite(ns, 0);
 }
        public void LoadProfile()
        {
            TestCaseFilter filter = CreateSampleTestFilter();

            using (var stream = new FileStream(@"Resources\TestCaseFilter_Load.profile", FileMode.Open))
            {
                filter.LoadProfile(stream);
            }

            Assert.AreEqual(
                RuleSelectStatus.Partial,
                filter[0].SelectStatus,
                "The group is partial selected");
            Assert.AreEqual(
                RuleSelectStatus.Selected,
                filter[2].SelectStatus,
                "The group is selected");
            Rule selectedRule = filter.FindRuleByName("Group1.Rule1.Rule12");

            Assert.AreEqual(
                RuleSelectStatus.Selected,
                selectedRule.SelectStatus,
                "The rule is selected");
            Rule notSelectedRule = filter.FindRuleByName("Group1.Rule1.Rule11");

            Assert.AreEqual(
                RuleSelectStatus.UnSelected,
                notSelectedRule.SelectStatus,
                "The rule is not selected");
        }
 public DiscoveryEventsRegistrar(IOutput output, TestCaseFilter filter, List <string> discoveredTests, CommandLineOptions cmdOptions)
 {
     this.output          = output;
     this.testCasefilter  = filter;
     this.discoveredTests = discoveredTests;
     this.options         = cmdOptions;
 }
        public void TestFindARuleByName_NotFound()
        {
            TestCaseFilter filter = CreateSampleTestFilter();

            Rule rule = filter.FindRuleByName("Group1.Rule1.NonExist");

            Assert.IsNull(rule, "Non-exist rule: Group1.Rule1.NonExis.");
        }
        public void TestFilterNotCondition()
        {
            TestCaseFilter filter = new TestCaseFilter();
            RuleGroup      group1 = new RuleGroup()
            {
                Name          = "Group1",
                Description   = "This is the first group.",
                RuleGroupType = RuleType.Selector
            };
            Rule rule11 = new Rule()
            {
                Name         = "Rule11",
                SelectStatus = RuleSelectStatus.Selected,
                CategoryList = new System.Collections.Generic.List <string>()
                {
                    "Cat1", "Cat2", "Cat3"
                }
            };
            Rule rule12 = new Rule()
            {
                Name         = "Rule12",
                SelectStatus = RuleSelectStatus.Selected,
                CategoryList = new System.Collections.Generic.List <string>()
                {
                    "Cat4", "Cat5", "Cat6"
                }
            };

            group1.Add(rule11);
            group1.Add(rule12);

            RuleGroup group2 = new RuleGroup()
            {
                Name          = "Group2",
                Description   = "This is the second group.",
                RuleGroupType = RuleType.Selector
            };
            Rule rule2 = new Rule()
            {
                Name         = "Rule2",
                SelectStatus = RuleSelectStatus.Selected,
                CategoryList = new System.Collections.Generic.List <string>()
                {
                    "!Cat1", "!Cat2", "Cat3"
                }
            };

            group2.Add(rule2);
            filter.Add(group1);
            filter.Add(group2);

            string filterExp = filter.GetFilterExpression();

            Assert.AreEqual(
                "(TestCategory=Cat4|TestCategory=Cat5|TestCategory=Cat6|TestCategory=Cat1|TestCategory=Cat2|TestCategory=Cat3)&(TestCategory!=Cat1|TestCategory!=Cat2|TestCategory=Cat3)",
                filterExp,
                "Verify filter expression with NOT condition.");
        }
        public void TestFindARuleByName()
        {
            TestCaseFilter filter = CreateSampleTestFilter();

            Rule rule = filter.FindRuleByName("Group1.Rule1.Rule11");

            Assert.IsNotNull(rule, "Find rule: Group1.Rule1.");
            Assert.AreEqual("Rule11", rule.Name, "Verify the name of the rule.");
        }
        public void TestGetSelectedRules()
        {
            TestCaseFilter filter = CreateSampleTestFilter();
            List <string>  rules  = filter.GetRuleList(true);

            Assert.IsTrue(
                rules.Contains("Group1.Rule1.Rule11"),
                "Group1.Rule1.Rule11 is selected.");
        }
        public void SetFilter(TestCaseFilter filter)
        {
            RuleList.Items.Clear();
            foreach (var group in filter)
            {
                TreeView ruleTree = new TreeView();
                CheckBox selectAll = new CheckBox()
                {
                    Content = "(Select All)",
                    IsChecked = group.IsSelected,
                    Focusable = false,
                    Tag = group
                };
                selectAll.Checked += (sender, arg) =>
                {
                    if (group.IsSelected != true) group.IsSelected = true;
                };
                selectAll.Unchecked += (sender, arg) =>
                {
                    if (group.IsSelected != false) group.IsSelected = false;
                };
                group.PropertyChanged += (sender, arg) =>
                {
                    if (arg.PropertyName == "IsSelected")
                    {
                        selectAll.IsChecked = group.IsSelected;
                    }
                };

                ruleTree.Items.Add(selectAll);

                AddItems(ruleTree.Items, group);
                Expander expander = new Expander()
                {
                    Header = group.Name,
                    Content = ruleTree,
                    IsExpanded = true
                };
                RuleList.Items.Add(expander);
                ruleTree.KeyDown += (sender, arg) =>
                {
                    if (arg.Key != Key.Space) return;
                    var tv = sender as TreeView;
                    if (tv == null) return;
                    ToggleTreeview(tv);
                };
                ruleTree.PreviewMouseWheel += ScrollViewer_PreviewMouseWheel;
                ruleTree.MouseDoubleClick += (sender, arg) =>
                {
                    if (arg.ChangedButton != MouseButton.Left) return;
                    var tv = sender as TreeView;
                    if (tv == null) return;
                    ToggleTreeview(tv);
                };
            }
        }
        public void TestFilterExpression()
        {
            TestCaseFilter filter    = CreateSampleTestFilter();
            string         filterExp = filter.GetFilterExpression();

            Assert.AreEqual(
                "(TestCategory=Cat1|TestCategory=Cat2|TestCategory=Cat3)&(TestCategory!=Cat7&TestCategory!=Cat8)",
                filterExp,
                "Verify filter expression");
        }
        public void SaveTestFilterProfile()
        {
            TestCaseFilter filter = CreateSampleTestFilter();

            using (var stream = new FileStream("test.profile", FileMode.Create))
            {
                filter.SaveProfile(stream);
            }

            //Manual verify the profile
        }
        public void CreateMappingTableForTestCaseFilter(TestCaseFilter filter, int targetFilterIndex, int mappingFilterIndex)
        {
            if (targetFilterIndex == -1 ||
                mappingFilterIndex == -1)
            {
                return;
            }
            else
            {
                Dictionary <string, List <Kernel.Rule> > featureMappingTableForKernel = new Dictionary <string, List <Kernel.Rule> >();
                Dictionary <string, List <Kernel.Rule> > reverseMappingTableForKernel = new Dictionary <string, List <Kernel.Rule> >();
                Kernel.RuleGroup targetFilterGroup  = filter[targetFilterIndex];
                Kernel.RuleGroup mappingFilterGroup = filter[mappingFilterIndex];
                Dictionary <string, Kernel.Rule> mappingRuleTable = CreateRuleTableFromRuleGroupForKernel(mappingFilterGroup);
                Dictionary <string, Kernel.Rule> targetRuleTable  = CreateRuleTableFromRuleGroupForKernel(targetFilterGroup);

                var testCaseList = TestSuite.GetTestCases(null);

                foreach (TestManager.Common.TestCaseInfo testCase in testCaseList)
                {
                    List <string> categories = testCase.Category.ToList();
                    foreach (string target in targetRuleTable.Keys)
                    {
                        if (categories.Contains(target))
                        {
                            Kernel.Rule currentRule;
                            foreach (string category in categories)
                            {
                                if (!category.Equals(target))
                                {
                                    mappingRuleTable.TryGetValue(category, out currentRule);
                                    if (currentRule == null)
                                    {
                                        continue;
                                    }
                                    UpdateMappingTableForKernel(featureMappingTableForKernel, target, currentRule);
                                    // Add item to reverse mapping table
                                    UpdateMappingTableForKernel(reverseMappingTableForKernel, category, targetRuleTable[target]);
                                }
                            }
                            break;
                        }
                    }
                }

                targetFilterGroup.featureMappingTable = featureMappingTableForKernel;
                targetFilterGroup.mappingRuleGroup    = mappingFilterGroup;

                mappingFilterGroup.reverseFeatureMappingTable = reverseMappingTableForKernel;
                mappingFilterGroup.targetRuleGroup            = targetFilterGroup;
            }
        }
        /// <summary>
        /// Default constructor.
        /// </summary>
        /// <param name="options">
        /// The options.
        /// </param>
        internal ListFullyQualifiedTestsArgumentExecutor(
            CommandLineOptions options,
            IRunSettingsProvider runSettingsProvider,
            ITestRequestManager testRequestManager,
            IOutput output)
        {
            Contract.Requires(options != null);

            this.commandLineOptions = options;
            this.output             = output;
            this.testRequestManager = testRequestManager;

            this.runSettingsManager       = runSettingsProvider;
            this.testCasefilter           = new TestCaseFilter();
            this.discoveryEventsRegistrar = new DiscoveryEventsRegistrar(output, this.testCasefilter, discoveredTests, this.commandLineOptions);
        }
        public void LoadRulesFromConfigFile()
        {
            AppConfig appConfig = AppConfig.LoadConfig("TestAppConfig", "0.0.0.0", @".\Resources", @".\Resources");
            var       filter    = TestCaseFilter.LoadFromXml(appConfig.RuleDefinitions);
            Rule      Rule1     = filter.FindRuleByName("ACategory.Rule1");

            Assert.IsNotNull(Rule1, "Rule1 is found.");
            Rule Rule2 = filter.FindRuleByName("ACategory.Rule2");

            Assert.IsNotNull(Rule2, "Rule2 is found.");
            Assert.AreEqual(2, Rule2.CategoryList.Count, "Verify the categories in Rule2");
            Assert.IsTrue(Rule2.CategoryList.Contains("Cat21"), "Find Cat21.");
            Assert.IsTrue(Rule2.CategoryList.Contains("Cat22"), "Find Cat22.");
            Rule Rule32 = filter.FindRuleByName("ACategory.Rule3.Rule31");

            Assert.IsNotNull(Rule1, "Rule31 is found.");
        }
예제 #14
0
        private void Run(string path, TestFixtureClass fixtureClass, TestCaseFilter filter, TestReporter reporter)
        {
            reporter.BeginSuite(fixtureClass);
            if (fixtureClass.HasIgnoreAttribute)
            {
                reporter.Ignore(fixtureClass.IgnoreMessage);
                reporter.EndSuite(fixtureClass, 0);
                return;
            }

            TestFixture fixture   = null;
            bool        setupDone = false;

            try
            {
                fixture = fixtureClass.CreateInstance();
                fixture.TestFixtureSetUp();
                setupDone = true;
            }
            catch (System.Exception e)
            {
                Exception.Report(e, reporter);
            }

            foreach (var test in GetItemOrder(fixtureClass.Tests))
            {
                var testPath = path + '.' + test.Name;
                if (filter.Match(testPath))
                {
                    Run(setupDone, testPath, fixture, test, filter, reporter);
                }
            }

            if (setupDone)
            {
                TestFixtureTearDown(fixture, reporter);
            }

            reporter.EndSuite(fixtureClass, 0);
        }
예제 #15
0
        private void TryRunTests(IEnumerable <VsTestCase> vsTestCasesToRun, IRunContext runContext, IFrameworkHandle frameworkHandle)
        {
            var stopwatch = StartStopWatchAndInitEnvironment(runContext, frameworkHandle);

            if (!AbleToRun(runContext))
            {
                return;
            }

            var           vsTestCasesToRunAsArray = vsTestCasesToRun as VsTestCase[] ?? vsTestCasesToRun.ToArray();
            ISet <string> allTraitNames           = GetAllTraitNames(vsTestCasesToRunAsArray.Select(tc => tc.ToTestCase()));
            var           filter = new TestCaseFilter(runContext, allTraitNames, _logger);

            vsTestCasesToRun = filter.Filter(vsTestCasesToRunAsArray);

            ICollection <TestCase> testCasesToRun = vsTestCasesToRun.Select(tc => tc.ToTestCase()).ToArray();

            DoRunTests(testCasesToRun, runContext, frameworkHandle);

            stopwatch.Stop();
            _logger.LogInfo(String.Format(Resources.TestExecutionCompleted, stopwatch.Elapsed));
        }
예제 #16
0
        public void RunTests(IEnumerable <VsTestCase> vsTestCasesToRun, IRunContext runContext, IFrameworkHandle frameworkHandle)
        {
            try
            {
                InitOrRefreshTestEnvironment(runContext.RunSettings, frameworkHandle);

                var           vsTestCasesToRunAsArray = vsTestCasesToRun as VsTestCase[] ?? vsTestCasesToRun.ToArray();
                ISet <string> allTraitNames           = GetAllTraitNames(vsTestCasesToRunAsArray.Select(DataConversionExtensions.ToTestCase));
                var           filter = new TestCaseFilter(runContext, allTraitNames, _testEnvironment);
                vsTestCasesToRun = filter.Filter(vsTestCasesToRunAsArray);

                IEnumerable <TestCase> allTestCasesInExecutables =
                    GetAllTestCasesInExecutables(vsTestCasesToRun.Select(tc => tc.Source).Distinct());

                IEnumerable <TestCase> testCasesToRun = vsTestCasesToRun.Select(DataConversionExtensions.ToTestCase);
                DoRunTests(allTestCasesInExecutables, testCasesToRun, runContext, frameworkHandle);
            }
            catch (Exception e)
            {
                _testEnvironment.LogError("Exception while running tests: " + e);
            }
        }
예제 #17
0
        public void RunTests(IEnumerable <string> executables, IRunContext runContext, IFrameworkHandle frameworkHandle)
        {
            try
            {
                InitOrRefreshTestEnvironment(runContext.RunSettings, frameworkHandle);

                IList <TestCase> allTestCasesInExecutables = GetAllTestCasesInExecutables(executables).ToList();

                ISet <string>     allTraitNames    = GetAllTraitNames(allTestCasesInExecutables);
                var               filter           = new TestCaseFilter(runContext, allTraitNames, _testEnvironment);
                List <VsTestCase> vsTestCasesToRun =
                    filter.Filter(allTestCasesInExecutables.Select(DataConversionExtensions.ToVsTestCase)).ToList();
                IEnumerable <TestCase> testCasesToRun =
                    allTestCasesInExecutables.Where(tc => vsTestCasesToRun.Any(vtc => tc.FullyQualifiedName == vtc.FullyQualifiedName)).ToList();

                DoRunTests(allTestCasesInExecutables, testCasesToRun, runContext, frameworkHandle);
            }
            catch (Exception e)
            {
                _testEnvironment.LogError("Exception while running tests: " + e);
            }
        }
예제 #18
0
        private void TryRunTests(IEnumerable <string> executables, IRunContext runContext, IFrameworkHandle frameworkHandle)
        {
            Stopwatch stopwatch = Stopwatch.StartNew();

            InitOrRefreshEnvironment(runContext.RunSettings, frameworkHandle);
            _logger.LogInfo("Google Test Adapter: Test execution starting...");
            _logger.DebugInfo($"Solution settings: {_settings}");

            IList <TestCase> allTestCasesInExecutables = GetAllTestCasesInExecutables(executables).ToList();

            ISet <string>     allTraitNames    = GetAllTraitNames(allTestCasesInExecutables);
            var               filter           = new TestCaseFilter(runContext, allTraitNames, _logger);
            List <VsTestCase> vsTestCasesToRun =
                filter.Filter(allTestCasesInExecutables.Select(DataConversionExtensions.ToVsTestCase)).ToList();
            ICollection <TestCase> testCasesToRun =
                allTestCasesInExecutables.Where(
                    tc => vsTestCasesToRun.Any(vtc => tc.FullyQualifiedName == vtc.FullyQualifiedName)).ToArray();

            DoRunTests(allTestCasesInExecutables, testCasesToRun, runContext, frameworkHandle);

            stopwatch.Stop();
            _logger.LogInfo($"Google Test execution completed, overall duration: {stopwatch.Elapsed}.");
        }
예제 #19
0
        static void HandleOption(string arg)
        {
            int    i     = arg.IndexOfAny(":=".ToCharArray());
            string value = null;

            if (i > 0)
            {
                value = arg.Substring(i + 1);
                arg   = arg.Substring(0, i);
            }

            if (arg == "?" || arg.ToLower() == "h")
            {
                Help();
            }
            if (arg.ToLower() == "list")
            {
                list = true;
            }
            else if (arg.ToLower() == "log")
            {
                logLevel = GetLogLevel(value);
            }
            else if (arg.ToLower() == "wait")
            {
                wait = true;
            }
            else if (arg.ToLower() == "randomize")
            {
                randomize = (value != null) ? int.Parse(value) : System.Environment.TickCount;
            }
            else if (arg.ToLower() == "run")
            {
                run    = true;
                filter = (value != null) ? new TestCaseNameFilter(value) : new TestCaseDefaultFilter() as TestCaseFilter;
            }
        }
예제 #20
0
        private void TryRunTests(IEnumerable <VsTestCase> vsTestCasesToRun, IRunContext runContext, IFrameworkHandle frameworkHandle)
        {
            Stopwatch stopwatch = Stopwatch.StartNew();

            InitOrRefreshEnvironment(runContext.RunSettings, frameworkHandle);
            _logger.LogInfo("Google Test Adapter: Test execution starting...");
            _logger.DebugInfo($"Solution settings: {_settings}");

            var           vsTestCasesToRunAsArray = vsTestCasesToRun as VsTestCase[] ?? vsTestCasesToRun.ToArray();
            ISet <string> allTraitNames           = GetAllTraitNames(vsTestCasesToRunAsArray.Select(DataConversionExtensions.ToTestCase));
            var           filter = new TestCaseFilter(runContext, allTraitNames, _logger);

            vsTestCasesToRun = filter.Filter(vsTestCasesToRunAsArray);

            IEnumerable <TestCase> allTestCasesInExecutables =
                GetAllTestCasesInExecutables(vsTestCasesToRun.Select(tc => tc.Source).Distinct());

            ICollection <TestCase> testCasesToRun = vsTestCasesToRun.Select(DataConversionExtensions.ToTestCase).ToArray();

            DoRunTests(allTestCasesInExecutables, testCasesToRun, runContext, frameworkHandle);

            stopwatch.Stop();
            _logger.LogInfo($"Google Test execution completed, overall duration: {stopwatch.Elapsed}.");
        }
예제 #21
0
        private void TryRunTests(IEnumerable <string> executables, IRunContext runContext, IFrameworkHandle frameworkHandle)
        {
            var stopwatch = StartStopWatchAndInitEnvironment(runContext, frameworkHandle);

            if (!AbleToRun(runContext))
            {
                return;
            }

            IList <TestCase> allTestCasesInExecutables = GetAllTestCasesInExecutables(executables).ToList();

            ISet <string>     allTraitNames    = GetAllTraitNames(allTestCasesInExecutables);
            var               filter           = new TestCaseFilter(runContext, allTraitNames, _logger);
            List <VsTestCase> vsTestCasesToRun =
                filter.Filter(allTestCasesInExecutables.Select(tc => tc.ToVsTestCase())).ToList();
            ICollection <TestCase> testCasesToRun =
                allTestCasesInExecutables.Where(
                    tc => vsTestCasesToRun.Any(vtc => tc.FullyQualifiedName == vtc.FullyQualifiedName)).ToArray();

            DoRunTests(testCasesToRun, runContext, frameworkHandle);

            stopwatch.Stop();
            _logger.LogInfo(String.Format(Resources.TestExecutionCompleted, stopwatch.Elapsed));
        }
예제 #22
0
        /// <summary>
        /// Loads test suite configuration.
        /// </summary>
        /// <param name="testSuiteInfo">The information of a test suite</param>
        public void LoadTestSuiteConfig(TestSuiteInfo testSuiteInfo)
        {
            testSuiteDir = testSuiteInfo.TestSuiteFolder + "\\";
            try
            {
                appConfig = AppConfig.LoadConfig(
                    testSuiteInfo.TestSuiteName,
                    testSuiteInfo.TestSuiteVersion,
                    testSuiteDir,
                    installDir);
            }
            catch (Exception e)
            {
                throw new Exception(string.Format(StringResource.ConfigLoadError, e.Message));
            }

            try
            {
                filter = TestCaseFilter.LoadFromXml(appConfig.RuleDefinitions);
            }
            catch (Exception e)
            {
                throw new Exception(string.Format(StringResource.LoadFilterError, e.Message));
            }
            appConfig.InitDefaultConfigurations();

            LastRuleSelectionFilename = testSuiteInfo.LastProfile;
        }
예제 #23
0
        private void Run(bool ok, string path, TestFixture fixture, Test test, TestCaseFilter filter, TestReporter reporter)
        {
            if (test.TestCases.Count > 0)
            {
                reporter.BeginSuite(test);
                foreach (var testCase in GetItemOrder(test.TestCases))
                {
                    if (filter.Match(path + "." + testCase.Name))
                    {
                        Run(ok, fixture, test, testCase, reporter);
                    }
                }
                reporter.EndSuite(test, 0);
                return;
            }

            reporter.BeginTest(test);
            if (!ok)
            {
                reporter.EndTest(test, 0, TestCaseState.Failed);
                return;
            }
            if (test.HasIgnoreAttribute)
            {
                reporter.Ignore(test.IgnoreMessage);
                reporter.EndTest(test, 0, TestCaseState.Ignored);
                return;
            }

            bool          setUpDone = false;
            TestCaseState runState  = TestCaseState.Failed;

            try
            {
                fixture.SetUp();
                setUpDone = true;
                test.Run(fixture, reporter);
                runState = TestCaseState.Success;
            }
            catch (System.Exception e)
            {
                if (Exception.IsExpected(e, typeof(NUnit.Framework.IgnoreException).FullName))
                {
                    runState = TestCaseState.Ignored;
                    reporter.Ignore(Exception.GetMessage(e));
                }
                else
                {
                    Exception.Report(e, reporter);
                }
            }

            TestCaseState state = TestCaseState.Failed;

            if (setUpDone)
            {
                try
                {
                    fixture.TearDown();
                    state = runState;
                }
                catch (System.Exception e)
                {
                    Exception.Report(e, reporter);
                }
            }
            reporter.EndTest(test, 0, state);
        }
        public void SetFilter(TestCaseFilter filter)
        {
            RuleList.Items.Clear();
            foreach (var group in filter)
            {
                TreeView ruleTree  = new TreeView();
                CheckBox selectAll = new CheckBox()
                {
                    Content   = "(Select All)",
                    IsChecked = group.IsSelected,
                    Focusable = false,
                    Tag       = group
                };
                selectAll.Checked += (sender, arg) =>
                {
                    if (group.IsSelected != true)
                    {
                        group.IsSelected = true;
                    }
                };
                selectAll.Unchecked += (sender, arg) =>
                {
                    if (group.IsSelected != false)
                    {
                        group.IsSelected = false;
                    }
                };
                group.PropertyChanged += (sender, arg) =>
                {
                    if (arg.PropertyName == "IsSelected")
                    {
                        selectAll.IsChecked = group.IsSelected;
                    }
                };

                ruleTree.Items.Add(selectAll);

                AddItems(ruleTree.Items, group);
                Expander expander = new Expander()
                {
                    Header     = group.Name,
                    Content    = ruleTree,
                    IsExpanded = true
                };
                RuleList.Items.Add(expander);
                ruleTree.KeyDown += (sender, arg) =>
                {
                    if (arg.Key != Key.Space)
                    {
                        return;
                    }
                    var tv = sender as TreeView;
                    if (tv == null)
                    {
                        return;
                    }
                    ToggleTreeview(tv);
                };
                ruleTree.PreviewMouseWheel += ScrollViewer_PreviewMouseWheel;
                ruleTree.MouseDoubleClick  += (sender, arg) =>
                {
                    if (arg.ChangedButton != MouseButton.Left)
                    {
                        return;
                    }
                    var tv = sender as TreeView;
                    if (tv == null)
                    {
                        return;
                    }
                    ToggleTreeview(tv);
                };
            }
        }
예제 #25
0
 public void Run(TestCaseFilter filter, TestReporter reporter)
 {
     reporter.BeginRun();
     Run("", global, filter, reporter);
     reporter.EndRun();
 }
        public void TestFilterNotCondition()
        {
            TestCaseFilter filter = new TestCaseFilter();
            RuleGroup group1 = new RuleGroup()
            {
                Name = "Group1",
                Description = "This is the first group.",
                RuleGroupType = RuleType.Selector
            };
            Rule rule11 = new Rule()
            {
                Name = "Rule11",
                SelectStatus = RuleSelectStatus.Selected,
                CategoryList = new System.Collections.Generic.List<string>() { "Cat1", "Cat2", "Cat3" }
            };
            Rule rule12 = new Rule()
            {
                Name = "Rule12",
                SelectStatus = RuleSelectStatus.Selected,
                CategoryList = new System.Collections.Generic.List<string>() { "Cat4", "Cat5", "Cat6" }
            };
            group1.Add(rule11);
            group1.Add(rule12);

            RuleGroup group2 = new RuleGroup()
            {
                Name = "Group2",
                Description = "This is the second group.",
                RuleGroupType = RuleType.Selector
            };
            Rule rule2 = new Rule()
            {
                Name = "Rule2",
                SelectStatus = RuleSelectStatus.Selected,
                CategoryList = new System.Collections.Generic.List<string>() { "!Cat1", "!Cat2", "Cat3" }
            };
            group2.Add(rule2);
            filter.Add(group1);
            filter.Add(group2);

            string filterExp = filter.GetFilterExpression();
            Assert.AreEqual(
                "(TestCategory=Cat4|TestCategory=Cat5|TestCategory=Cat6|TestCategory=Cat1|TestCategory=Cat2|TestCategory=Cat3)&(TestCategory!=Cat1|TestCategory!=Cat2|TestCategory=Cat3)",
                filterExp,
                "Verify filter expression with NOT condition.");
        }
예제 #27
0
 internal TestOptions Pending()
 {
     return(AddFilter(TestCaseFilter.Create(tex => tex.Pending())));
 }
        private TestCaseFilter CreateSampleTestFilter()
        {
            TestCaseFilter filter = new TestCaseFilter();
            RuleGroup      group1 = new RuleGroup()
            {
                Name          = "Group1",
                Description   = "This is the first group.",
                RuleGroupType = RuleType.Selector
            };
            Rule rule1 = new Rule()
            {
                Name         = "Rule1",
                SelectStatus = RuleSelectStatus.Selected
            };
            Rule rule11 = new Rule()
            {
                Name         = "Rule11",
                SelectStatus = RuleSelectStatus.Selected,
                CategoryList = new System.Collections.Generic.List <string>()
                {
                    "Cat1", "Cat2", "Cat3"
                }
            };
            Rule rule12 = new Rule()
            {
                Name         = "Rule12",
                SelectStatus = RuleSelectStatus.UnSelected,
                CategoryList = new System.Collections.Generic.List <string>()
                {
                    "Cat4", "Cat5", "Cat6"
                }
            };

            rule1.Add(rule11);
            rule1.Add(rule12);
            group1.Add(rule1);

            RuleGroup group2 = new RuleGroup()
            {
                Name          = "Group2",
                Description   = "This is the second group.",
                RuleGroupType = RuleType.Selector
            };
            Rule rule2 = new Rule()
            {
                Name         = "Rule2",
                SelectStatus = RuleSelectStatus.UnSelected,
                CategoryList = new System.Collections.Generic.List <string>()
                {
                    "Cat1", "Cat2", "Cat3"
                }
            };

            group2.Add(rule2);

            RuleGroup group3 = new RuleGroup()
            {
                Name          = "Group3",
                Description   = "This is the third group.",
                SelectStatus  = RuleSelectStatus.Selected,
                RuleGroupType = RuleType.Remover
            };
            Rule rule3 = new Rule()
            {
                Name         = "Rule3",
                SelectStatus = RuleSelectStatus.Selected,
                CategoryList = new System.Collections.Generic.List <string>()
                {
                    "Cat7", "Cat8"
                }
            };

            group3.Add(rule3);

            filter.Add(group1);
            filter.Add(group2);
            filter.Add(group3);

            rule11.SelectStatus = RuleSelectStatus.Selected;
            rule3.SelectStatus  = RuleSelectStatus.UnSelected;
            return(filter);
        }
예제 #29
0
 internal TestOptions Focused()
 {
     return(AddFilter(TestCaseFilter.Create(tex => tex.TestUnit.IsFocused = true)));
 }
        private TestCaseFilter CreateSampleTestFilter()
        {
            TestCaseFilter filter = new TestCaseFilter();
            RuleGroup group1 = new RuleGroup()
            {
                Name = "Group1",
                Description = "This is the first group.",
                RuleGroupType = RuleType.Selector
            };
            Rule rule1 = new Rule()
            {
                Name = "Rule1",
                SelectStatus = RuleSelectStatus.Selected
            };
            Rule rule11 = new Rule()
            {
                Name = "Rule11",
                SelectStatus = RuleSelectStatus.Selected,
                CategoryList = new System.Collections.Generic.List<string>() { "Cat1", "Cat2", "Cat3" }
            };
            Rule rule12 = new Rule()
            {
                Name = "Rule12",
                SelectStatus = RuleSelectStatus.NotSelected,
                CategoryList = new System.Collections.Generic.List<string>() { "Cat4", "Cat5", "Cat6" }
            };
            rule1.Add(rule11);
            rule1.Add(rule12);
            group1.Add(rule1);

            RuleGroup group2 = new RuleGroup()
            {
                Name = "Group2",
                Description = "This is the second group.",
                RuleGroupType = RuleType.Selector
            };
            Rule rule2 = new Rule()
            {
                Name = "Rule2",
                SelectStatus = RuleSelectStatus.NotSelected,
                CategoryList = new System.Collections.Generic.List<string>() { "Cat1", "Cat2", "Cat3" }
            };
            group2.Add(rule2);

            RuleGroup group3 = new RuleGroup()
            {
                Name = "Group3",
                Description = "This is the third group.",
                SelectStatus = RuleSelectStatus.Selected,
                RuleGroupType = RuleType.Remover
            };
            Rule rule3 = new Rule()
            {
                Name = "Rule3",
                SelectStatus = RuleSelectStatus.Selected,
                CategoryList = new System.Collections.Generic.List<string>() { "Cat7", "Cat8" }
            };
            group3.Add(rule3);

            filter.Add(group1);
            filter.Add(group2);
            filter.Add(group3);

            rule11.SelectStatus = RuleSelectStatus.Selected;
            rule3.SelectStatus = RuleSelectStatus.NotSelected;
            return filter;
        }