public void DiscoverTests()

in BoostTestAdapter/BoostTestDiscoverer.cs [106:157]


        public void DiscoverTests(IEnumerable<string> sources, IDiscoveryContext discoveryContext,
            ITestCaseDiscoverySink discoverySink, IDiscoveryVerifier discoveryVerifier)
        {
            if (sources == null)
                return;

            BoostTestAdapterSettings settings = BoostTestAdapterSettingsProvider.GetSettings(discoveryContext);

            try
            {
                // Filter out any non-interesting, non-existant, or untrusted sources.
                List<string> filteredSources = new List<string>();
                bool sourceFilterAvailable = !TestSourceFilter.IsNullOrEmpty(settings.Filters);
                foreach (var source in sources)
                {
                    if (sourceFilterAvailable && !settings.Filters.ShouldInclude(source))
                    {
                        // Skip silently.
                    }
                    else if (!discoveryVerifier.FileExists(source))
                    {
                        Logger.Warn(Resources.FileNotFound, source);
                    }
                    else if (!discoveryVerifier.IsFileZoneMyComputer(source))
                    {
                        Logger.Error(Resources.BadFileZone, source);
                    }
                    else
                    {
                        filteredSources.Add(source);
                    }
                }

                var results = _boostTestDiscovererFactory.GetDiscoverers(filteredSources, settings);
                if (results == null)
                    return;

                // Test discovery
                foreach (var discoverer in results)
                {
                    if (discoverer.Sources.Count > 0)
                    {
                        Logger.Info(Resources.Discovering, discoverer.Discoverer.GetType().Name, string.Join(", ", discoverer.Sources));
                        discoverer.Discoverer.DiscoverTests(discoverer.Sources, discoveryContext, discoverySink);
                    }
                }
            }
            catch (Exception ex)
            {
                Logger.Exception(ex, Resources.DiscoveryException, ex.Message, ex.HResult);
            }
        }