/// <summary> /// Fetches the ExecutionManager for this engine. This manager would provide all functionality required for execution. /// </summary> /// <param name="testHostManager">Test host manager.</param> /// <param name="testRunCriteria">Test run criterion.</param> /// <returns> /// ITestExecutionManager object that can do execution /// </returns> public IProxyExecutionManager GetExecutionManager(ITestHostManager testHostManager, TestRunCriteria testRunCriteria) { var distinctSources = GetDistinctNumberOfSources(testRunCriteria); int parallelLevel = this.VerifyParallelSettingAndCalculateParallelLevel(distinctSources, testRunCriteria.TestRunSettings); var runconfiguration = XmlRunSettingsUtilities.GetRunConfigurationNode(testRunCriteria.TestRunSettings); var architecture = runconfiguration.TargetPlatform; var isDataCollectorEnabled = XmlRunSettingsUtilities.IsDataCollectionEnabled(testRunCriteria.TestRunSettings); // SetupChannel ProxyExecutionManager with data collection if data collectors are specififed in run settings. Func <IProxyExecutionManager> proxyExecutionManagerCreator = () => isDataCollectorEnabled ? new ProxyExecutionManagerWithDataCollection(testHostManager, this.GetDataCollectionManager(architecture, testRunCriteria.TestRunSettings, runconfiguration.TargetFrameworkVersion.Name)) : new ProxyExecutionManager(testHostManager); // parallelLevel = 1 for desktop should go via else route. if (parallelLevel > 1 || !testHostManager.Shared) { return(new ParallelProxyExecutionManager(proxyExecutionManagerCreator, parallelLevel, sharedHosts: testHostManager.Shared)); } else { return(proxyExecutionManagerCreator()); } }
/// <summary> /// Initializes a new instance of the <see cref="ProxyDiscoveryManager"/> class. /// Constructor with Dependency injection. Used for unit testing. /// </summary> /// <param name="requestSender"> /// The request Sender. /// </param> /// <param name="testHostManager"> /// Test host Manager instance /// </param> /// <param name="clientConnectionTimeout"> /// The client Connection Timeout /// </param> internal ProxyDiscoveryManager( ITestRequestSender requestSender, ITestHostManager testHostManager, int clientConnectionTimeout) : base(requestSender, testHostManager, clientConnectionTimeout) { this.testHostManager = testHostManager; }
/// <summary> /// Initializes a new instance of the <see cref="ProxyOperationManager"/> class. /// </summary> /// <param name="requestSender">Request Sender instance.</param> /// <param name="testHostManager">Test host manager instance.</param> /// <param name="clientConnectionTimeout">Client Connection Timeout.</param> protected ProxyOperationManager(ITestRequestSender requestSender, ITestHostManager testHostManager, int clientConnectionTimeout) { this.RequestSender = requestSender; this.connectionTimeout = clientConnectionTimeout; this.testHostManager = testHostManager; this.processHelper = new ProcessHelper(); this.initialized = false; }
/// <summary> /// Fetches the DiscoveryManager for this engine. This manager would provide all functionality required for discovery. /// </summary> /// <param name="testHostManager"></param> /// <returns>ITestDiscoveryManager object that can do discovery</returns> public IProxyDiscoveryManager GetDiscoveryManager(ITestHostManager testHostManager, DiscoveryCriteria discoveryCriteria) { int parallelLevel = this.VerifyParallelSettingAndCalculateParallelLevel(discoveryCriteria.Sources.Count(), discoveryCriteria.RunSettings); Func <IProxyDiscoveryManager> proxyDiscoveryManagerCreator = () => new ProxyDiscoveryManager(testHostManager); if (!testHostManager.Shared) { return(new ParallelProxyDiscoveryManager(proxyDiscoveryManagerCreator, parallelLevel, sharedHosts: testHostManager.Shared)); } else { return(proxyDiscoveryManagerCreator()); } }
public TestableProxyOperationManager( ITestRequestSender requestSender, ITestHostManager testHostManager, int clientConnectionTimeout) : base(requestSender, testHostManager, clientConnectionTimeout) { }
/// <summary> /// Initializes a new instance of the <see cref="ProxyExecutionManager"/> class. /// </summary> /// <param name="testHostManager">Test host manager for this proxy.</param> public ProxyExecutionManager(ITestHostManager testHostManager) : this(new TestRequestSender(), testHostManager, Constants.ClientConnectionTimeout) { }
/// <summary> /// Initializes a new instance of the <see cref="ProxyDiscoveryManager"/> class. /// </summary> /// <param name="testHostManager">Test host manager instance.</param> public ProxyDiscoveryManager(ITestHostManager testHostManager) : this(new TestRequestSender(), testHostManager, Constants.ClientConnectionTimeout) { this.testHostManager = testHostManager; }
/// <summary> /// Initializes a new instance of the <see cref="ProxyExecutionManagerWithDataCollection"/> class. /// </summary> /// <param name="testHostManager"> /// Test host manager for this operation. /// </param> /// <param name="proxyDataCollectionManager"> /// The proxy Data Collection Manager. /// </param> public ProxyExecutionManagerWithDataCollection(ITestHostManager testHostManager, IProxyDataCollectionManager proxyDataCollectionManager) : base(testHostManager) { this.ProxyDataCollectionManager = proxyDataCollectionManager; this.DataCollectionRunEventsHandler = new DataCollectionRunEventsHandler(); }