Пример #1
0
        public void InitializeShouldLoadAndInitializeAllExtension()
        {
            var commonAssemblyLocation = typeof(TestPluginCacheTests).GetTypeInfo().Assembly.Location;

            TestPluginCacheTests.SetupMockExtensions(
                new string[] { commonAssemblyLocation },
                () => { });


            this.executionManager.Initialize(new List <string> {
                commonAssemblyLocation
            });

            Assert.IsNotNull(TestPluginCache.Instance.TestExtensions);

            // Executors
            Assert.IsTrue(TestPluginCache.Instance.TestExtensions.TestExecutors.Count > 0);
            var allExecutors = TestExecutorExtensionManager.Create().TestExtensions;

            foreach (var executor in allExecutors)
            {
                Assert.IsTrue(executor.IsExtensionCreated);
            }

            // Settings Providers
            Assert.IsTrue(TestPluginCache.Instance.TestExtensions.TestSettingsProviders.Count > 0);
            var settingsProviders = SettingsProviderExtensionManager.Create().SettingsProvidersMap.Values;

            foreach (var provider in settingsProviders)
            {
                Assert.IsTrue(provider.IsExtensionCreated);
            }
        }
Пример #2
0
 public TestableTestPluginCache(List <string> extensionsPath)
 {
     TestDiscoveryExtensionManager.Destroy();
     TestExecutorExtensionManager.Destroy();
     SettingsProviderExtensionManager.Destroy();
     this.UpdateExtensions(extensionsPath, skipExtensionFilters: false);
 }
Пример #3
0
        private void LoadExtensions()
        {
            try
            {
                // Load the extensions on creation so that we dont have to spend time during first execution.
                EqtTrace.Verbose("TestExecutorService: Loading the extensions");

                TestDiscoveryExtensionManager.LoadAndInitializeAllExtensions(false);

                EqtTrace.Verbose("TestExecutorService: Loaded the discoverers");

                TestExecutorExtensionManager.LoadAndInitializeAllExtensions(false);

                EqtTrace.Verbose("TestExecutorService: Loaded the executors");

                SettingsProviderExtensionManager.LoadAndInitializeAllExtensions(false);

                EqtTrace.Verbose("TestExecutorService: Loaded the settings providers");
                EqtTrace.Info("TestExecutorService: Loaded the extensions");
            }
            catch (Exception ex)
            {
                if (EqtTrace.IsWarningEnabled)
                {
                    EqtTrace.Warning("TestExecutorWebService: Exception occured while calling test connection. {0}", ex);
                }
            }
        }
Пример #4
0
 public TestableTestPluginCache(IFileHelper fileHelper, List <string> extensionsPath) : base(fileHelper)
 {
     TestDiscoveryExtensionManager.Destroy();
     TestExecutorExtensionManager.Destroy();
     SettingsProviderExtensionManager.Destroy();
     this.UpdateExtensions(extensionsPath, true);
 }
Пример #5
0
        public void TestCleanup()
        {
            RunTestWithSourcesExecutor.RunTestsWithSourcesCallback = null;
            RunTestWithSourcesExecutor.RunTestsWithTestsCallback   = null;

            TestDiscoveryExtensionManager.Destroy();
            TestExecutorExtensionManager.Destroy();
            SettingsProviderExtensionManager.Destroy();
        }
Пример #6
0
        public void CreateShouldDiscoverSettingsProviderExtensions()
        {
            TestPluginCacheTests.SetupMockExtensions();

            var extensionManager = SettingsProviderExtensionManager.Create();

            Assert.IsNotNull(extensionManager.SettingsProvidersMap);
            Assert.IsTrue(extensionManager.SettingsProvidersMap.Count > 0);
        }
Пример #7
0
        private void LoadSection(XmlReader reader, SettingsProviderExtensionManager settingsExtensionManager)
        {
            ValidateArg.NotNull <XmlReader>(reader, "reader");
            ValidateArg.NotNull <SettingsProviderExtensionManager>(settingsExtensionManager, "settingsExtensionManager");

            // Check for duplicate settings
            if (this.settings.ContainsKey(reader.Name))
            {
                TestSessionMessageLogger.Instance.SendMessage(
                    TestMessageLevel.Error,
                    string.Format(CultureInfo.CurrentCulture, CommonResources.DuplicateSettingsProvided, reader.Name));

                return;
            }

            // Look up the section for this node.
            var provider = settingsExtensionManager.GetSettingsProvider(reader.Name);

            if (provider != null)
            {
                try
                {
                    // Have the provider load the settings.
                    provider.Value.Load(reader.ReadSubtree());
                }
                catch (Exception e)
                {
                    // Setup to throw the exception when the section is requested.
                    provider = CreateLazyThrower(
                        string.Format(
                            CultureInfo.CurrentCulture,
                            CommonResources.SettingsProviderInitializationError,
                            provider.Metadata.SettingsName,
                            e.Message),
                        provider.Metadata,
                        e);
                }
            }
            else
            {
                // Setup to throw when this section is requested.
                var metadata = new TestSettingsProviderMetadata(reader.Name);

                var message = string.Format(
                    CultureInfo.CurrentCulture,
                    CommonResources.SettingsProviderNotFound,
                    metadata.SettingsName);

                provider = CreateLazyThrower(message, metadata);
            }

            // Cache the provider instance so it can be looked up later when the section is requested.
            this.settings.Add(provider.Metadata.SettingsName, provider);
        }
        public void CreateShouldCacheDiscoveredExtensions()
        {
            TestPluginCacheHelper.SetupMockExtensions(typeof(SettingsProviderExtensionManagerTests), () => { });

            var extensionManager = SettingsProviderExtensionManager.Create();

            SettingsProviderExtensionManager.Create();

            Assert.IsNotNull(extensionManager.SettingsProvidersMap);
            Assert.IsTrue(extensionManager.SettingsProvidersMap.Count > 0);
        }
Пример #9
0
        public void LoadAndInitializeShouldInitializeAllExtensions()
        {
            TestPluginCacheTests.SetupMockExtensions();

            SettingsProviderExtensionManager.LoadAndInitializeAllExtensions(false);

            var settingsProviders = SettingsProviderExtensionManager.Create().SettingsProvidersMap.Values;

            foreach (var provider in settingsProviders)
            {
                Assert.IsTrue(provider.IsExtensionCreated);
            }
        }
Пример #10
0
        public void CreateShouldCacheDiscoveredExtensions()
        {
            var discoveryCount = 0;

            TestPluginCacheTests.SetupMockExtensions(() => { discoveryCount++; });

            var extensionManager = SettingsProviderExtensionManager.Create();

            SettingsProviderExtensionManager.Create();

            Assert.IsNotNull(extensionManager.SettingsProvidersMap);
            Assert.IsTrue(extensionManager.SettingsProvidersMap.Count > 0);
            Assert.AreEqual(1, discoveryCount);
        }
Пример #11
0
        public ArgumentProcessorResult Execute()
        {
            ConsoleOutput.Instance.WriteLine(CommandLineResources.AvailableSettingsProvidersHeaderMessage, OutputLevel.Information);
            var testPlatform     = TestPlatformFactory.GetTestPlatform();
            var extensionManager = SettingsProviderExtensionManager.Create();

            foreach (var extension in extensionManager.SettingsProvidersMap.Values)
            {
                ConsoleOutput.Instance.WriteLine(extension.Value.GetType().FullName, OutputLevel.Information);
                ConsoleOutput.Instance.WriteLine(string.Format(CultureInfo.CurrentCulture, CommandLineResources.AvailableExtensionsMetadataFormat, "SettingName", extension.Metadata.SettingsName), OutputLevel.Information);
            }

            return(ArgumentProcessorResult.Success);
        }
Пример #12
0
        /// <summary>
        /// Reads test run settings from XmlReader
        /// </summary>
        /// <param name="reader"></param>
        private void ReadRunSettings(XmlReader reader)
        {
            // If settings have already been loaded, throw.
            if (this.isSettingsLoaded)
            {
                throw new InvalidOperationException(CommonResources.RunSettingsAlreadyLoaded);
            }

            this.isSettingsLoaded = true;

            try
            {
                // Read to the root element.
                XmlReaderUtilities.ReadToRootNode(reader);

                // Read to the first section.
                reader.ReadToNextElement();

                // Lookup the settings provider for each of the elements.
                var settingsExtensionManager = SettingsProviderExtensionManager.Create();
                while (!reader.EOF)
                {
                    this.LoadSection(reader, settingsExtensionManager);
                    reader.SkipToNextElement();
                }
            }
            catch (SettingsException)
            {
                throw;
            }
            catch (Exception e)
            {
                throw new SettingsException(
                          string.Format(
                              CultureInfo.CurrentCulture,
                              CommonResources.RunSettingsParseError,
                              e.Message),
                          e);
            }
        }
Пример #13
0
 public static void ResetExtensionsCache()
 {
     TestPluginCache.Instance = null;
     SettingsProviderExtensionManager.Destroy();
 }
Пример #14
0
 public void TestCleanup()
 {
     SettingsProviderExtensionManager.Destroy();
 }