Exemple #1
0
        /// <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());
            }
        }
Exemple #2
0
 /// <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;
 }
Exemple #4
0
        /// <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());
            }
        }
Exemple #5
0
 public TestableProxyOperationManager(
     ITestRequestSender requestSender,
     ITestHostManager testHostManager,
     int clientConnectionTimeout) : base(requestSender, testHostManager, clientConnectionTimeout)
 {
 }
Exemple #6
0
 /// <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)
 {
 }
Exemple #7
0
 /// <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();
 }