public TestFilter ConvertTfsFilterToNUnitFilter(IVsTestFilter vsFilter, IList <TestCase> loadedTestCases)
        {
            var filteredTestCases = vsFilter.CheckFilter(loadedTestCases);
            var testCases         = filteredTestCases as TestCase[] ?? filteredTestCases.ToArray();

            // TestLog.Info(string.Format("TFS Filter detected: LoadedTestCases {0}, Filtered Test Cases {1}", loadedTestCases.Count, testCases.Count()));
            return(testCases.Any() ? FilterByList(testCases) : NoTestsFound);
        }
        public TestFilter ConvertTfsFilterToNUnitFilter(IVsTestFilter vsFilter, IDiscoveryConverter discovery)
        {
            var  filteredTestCases = vsFilter.CheckFilter(discovery.LoadedTestCases).ToList();
            var  explicitCases     = discovery.CheckTestCasesExplicit(filteredTestCases).ToList();
            bool isExplicit        = filteredTestCases.Count == explicitCases.Count;
            var  tcs       = isExplicit ? filteredTestCases : filteredTestCases.Except(explicitCases);
            var  testCases = tcs as TestCase[] ?? tcs.ToArray();

            // TestLog.Info(string.Format("TFS Filter detected: LoadedTestCases {0}, Filtered Test Cases {1}", loadedTestCases.Count, testCases.Count()));
            return(testCases.Any() ? FilterByList(testCases) : NoTestsFound);
        }
        public TestFilter ConvertVsTestFilterToNUnitFilter(IVsTestFilter vsFilter)
        {
            if (string.IsNullOrEmpty(vsFilter?.TfsTestCaseFilterExpression?.TestCaseFilterValue))
            {
                return(null);
            }
            var parser = new TestFilterParser();
            var filter = parser.Parse(vsFilter.TfsTestCaseFilterExpression.TestCaseFilterValue);
            var tf     = new TestFilter(filter);

            return(tf);
        }
        public TestFilter ConvertVsTestFilterToNUnitFilter(IVsTestFilter vsFilter, IDiscoveryConverter discovery)
        {
            if (settings.DiscoveryMethod == DiscoveryMethod.Legacy)
            {
                return(ConvertTfsFilterToNUnitFilter(vsFilter, discovery.LoadedTestCases));
            }
            if (!settings.UseNUnitFilter)
            {
                return(ConvertTfsFilterToNUnitFilter(vsFilter, discovery));
            }
            var result = ConvertVsTestFilterToNUnitFilter(vsFilter);

            if (result == null)
            {
                return(ConvertTfsFilterToNUnitFilter(vsFilter, discovery));
            }
            return(result);
        }
Пример #5
0
        public TestFilter CheckVsTestFilter(TestFilter filter, IDiscoveryConverter discovery, IVsTestFilter vsTestFilter)
        {
            // If we have a VSTest TestFilter, convert it to an nunit filter
            if (vsTestFilter == null || vsTestFilter.IsEmpty)
            {
                return(filter);
            }
            TestLog.Debug(
                $"TfsFilter used, length: {vsTestFilter.TfsTestCaseFilterExpression?.TestCaseFilterValue.Length}");
            // NOTE This overwrites filter used in call
            var filterBuilder = CreateTestFilterBuilder();

            if (Settings.DiscoveryMethod == DiscoveryMethod.Current)
            {
                filter = Settings.UseNUnitFilter
                    ? filterBuilder.ConvertVsTestFilterToNUnitFilter(vsTestFilter)
                    : filterBuilder.ConvertTfsFilterToNUnitFilter(vsTestFilter, discovery);
            }
            else
            {
                filter = filterBuilder
                         .ConvertTfsFilterToNUnitFilter(vsTestFilter, discovery.LoadedTestCases);
            }

            Dump?.AddString($"\n\nTFSFilter: {vsTestFilter.TfsTestCaseFilterExpression.TestCaseFilterValue}\n");
            Dump?.DumpVSInputFilter(filter, "(At Execution (TfsFilter)");

            return(filter);
        }