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);
}
}