/// <summary>
        /// Ensure that the Execution component of engine is ready for execution usually by loading extensions.
        /// </summary>
        public override void Initialize()
        {
            DataCollectionParameters dataCollectionParameters = null;

            try
            {
                dataCollectionParameters = (this.ProxyDataCollectionManager == null)
                                               ? DataCollectionParameters.CreateDefaultParameterInstance()
                                               : this.ProxyDataCollectionManager.BeforeTestRunStart(
                    resetDataCollectors: true,
                    isRunStartingNow: true,
                    runEventsHandler: this.DataCollectionRunEventsHandler);
            }
            catch
            {
                try
                {
                    // On failure in calling BeforeTestRunStart, call AfterTestRunEnd to end DataCollectionProcess
                    if (this.ProxyDataCollectionManager != null)
                    {
                        this.ProxyDataCollectionManager.AfterTestRunEnd(isCanceled: true, runEventsHandler: this.DataCollectionRunEventsHandler);
                    }
                }
                catch (Exception ex)
                {
                    // There is an issue with Data Collector, skipping data collection and continuing with test run.
                    if (EqtTrace.IsErrorEnabled)
                    {
                        EqtTrace.Error("TestEngine: Error occured while communicating with DataCollection Process: {0}", ex);
                    }

                    if (EqtTrace.IsWarningEnabled)
                    {
                        EqtTrace.Warning("TestEngine: Skipping Data Collection");
                    }
                }
            }

            // todo : pass dataCollectionParameters.EnvironmentVariables while initializaing testhostprocess.
            base.Initialize();
        }
        public void UpdateTestProcessStartInfoShouldUpdateDataCollectionPortArg()
        {
            this.mockDataCollectionManager.Setup(x => x.BeforeTestRunStart(It.IsAny <bool>(), It.IsAny <bool>(), It.IsAny <ITestMessageEventHandler>())).Returns(DataCollectionParameters.CreateDefaultParameterInstance());

            var testProcessStartInfo = new TestProcessStartInfo();

            testProcessStartInfo.Arguments = string.Empty;

            var proxyExecutionManager = new TestableProxyExecutionManagerWithDataCollection(this.mockRequestSender.Object, this.mockTestHostManager.Object, this.mockDataCollectionManager.Object);

            proxyExecutionManager.UpdateTestProcessStartInfoWrapper(testProcessStartInfo);

            Assert.IsTrue(testProcessStartInfo.Arguments.Contains("--datacollectionport 0"));
        }
Exemplo n.º 3
0
        public void UpdateTestProcessStartInfoShouldUpdateTelemetryOptedInArgFalseIfTelemetryOptedOut()
        {
            var mockRequestData = new Mock <IRequestData>();

            this.mockRequestData.Setup(rd => rd.IsTelemetryOptedIn).Returns(false);

            this.mockDataCollectionManager.Setup(x => x.BeforeTestRunStart(It.IsAny <bool>(), It.IsAny <bool>(), It.IsAny <ITestMessageEventHandler>())).Returns(DataCollectionParameters.CreateDefaultParameterInstance());

            var testProcessStartInfo = new TestProcessStartInfo();

            testProcessStartInfo.Arguments = string.Empty;

            var proxyExecutionManager = new TestableProxyExecutionManagerWithDataCollection(this.mockRequestData.Object, this.mockRequestSender.Object, this.mockTestHostManager.Object, this.mockDataCollectionManager.Object);

            // Act.
            proxyExecutionManager.UpdateTestProcessStartInfoWrapper(testProcessStartInfo);

            // Verify.
            Assert.IsTrue(testProcessStartInfo.Arguments.Contains("--telemetryoptedin false"));
        }