Beispiel #1
0
        private async Task DiscoverTestsAsync(
            IEnumerable <string> sources,
            IDiscoveryContext discoveryContext,
            IMessageLogger logger,
            ITestCaseDiscoverySink discoverySink)
        {
            logger.SendMessage(
                TestMessageLevel.Informational,
                string.Format("Persimmon Test Adapter {0} discovering tests started", version_));

            try
            {
                var testExecutor = new TestExecutor();
                var sink         = new TestDiscoverySink(discoveryContext, logger, discoverySink);

                var filteredSources =
                    sources.Where(path => !excludeAssemblies_.Contains(Path.GetFileNameWithoutExtension(path)));

#if false
                foreach (var task in filteredSources.Select(
                             targetAssemblyPath => testExecutor.DiscoverAsync(targetAssemblyPath, sink)))
                {
                    await task;
                }
#else
                await Task.WhenAll(filteredSources.Select(
                                       targetAssemblyPath => testExecutor.DiscoverAsync(targetAssemblyPath, sink)));
#endif
            }
            catch (Exception ex)
            {
                logger.SendMessage(
                    TestMessageLevel.Error,
                    ex.ToString());
            }
            finally
            {
                logger.SendMessage(
                    TestMessageLevel.Informational,
                    string.Format("Persimmon Test Adapter {0} discovering tests finished", version_));
            }
        }