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); } }
public TestableTestPluginCache(List <string> extensionsPath) { TestDiscoveryExtensionManager.Destroy(); TestExecutorExtensionManager.Destroy(); SettingsProviderExtensionManager.Destroy(); this.UpdateExtensions(extensionsPath, skipExtensionFilters: false); }
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); } } }
public TestableTestPluginCache(IFileHelper fileHelper, List <string> extensionsPath) : base(fileHelper) { TestDiscoveryExtensionManager.Destroy(); TestExecutorExtensionManager.Destroy(); SettingsProviderExtensionManager.Destroy(); this.UpdateExtensions(extensionsPath, true); }
public void TestCleanup() { RunTestWithSourcesExecutor.RunTestsWithSourcesCallback = null; RunTestWithSourcesExecutor.RunTestsWithTestsCallback = null; TestDiscoveryExtensionManager.Destroy(); TestExecutorExtensionManager.Destroy(); SettingsProviderExtensionManager.Destroy(); }
public void CreateShouldDiscoverSettingsProviderExtensions() { TestPluginCacheTests.SetupMockExtensions(); var extensionManager = SettingsProviderExtensionManager.Create(); Assert.IsNotNull(extensionManager.SettingsProvidersMap); Assert.IsTrue(extensionManager.SettingsProvidersMap.Count > 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); }
public void LoadAndInitializeShouldInitializeAllExtensions() { TestPluginCacheTests.SetupMockExtensions(); SettingsProviderExtensionManager.LoadAndInitializeAllExtensions(false); var settingsProviders = SettingsProviderExtensionManager.Create().SettingsProvidersMap.Values; foreach (var provider in settingsProviders) { Assert.IsTrue(provider.IsExtensionCreated); } }
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); }
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); }
/// <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); } }
public static void ResetExtensionsCache() { TestPluginCache.Instance = null; SettingsProviderExtensionManager.Destroy(); }
public void TestCleanup() { SettingsProviderExtensionManager.Destroy(); }