Best Vstest code snippet using Microsoft.VisualStudio.TestPlatform.CommunicationUtilities.TestRequestSender.OnClientProcessExit
TestRequestSenderTests.cs
Source:TestRequestSenderTests.cs  
...93        [TestMethod]94        public void WaitForRequestHandlerConnectionWithTimeoutShouldReturnImmediatelyIfHostExitedUnexpectedly()95        {96            var cancellationTokenSource = new CancellationTokenSource();97            this.testRequestSender.OnClientProcessExit("DummyError");98            var connectionTimeout = 5000;99            var watch = System.Diagnostics.Stopwatch.StartNew();100            var connected = this.testRequestSender.WaitForRequestHandlerConnection(connectionTimeout, cancellationTokenSource.Token);101            watch.Stop();102            Assert.IsFalse(connected);103            Assert.IsTrue(watch.ElapsedMilliseconds < connectionTimeout);104        }105        [TestMethod]106        public void CloseShouldCallStopServerOnCommunicationManager()107        {108            this.testRequestSender.Close();109            this.mockServer.Verify(mc => mc.Stop(), Times.Once);110        }111        [TestMethod]112        public void DisposeShouldCallStopServerOnCommunicationManager()113        {114            this.testRequestSender.Dispose();115            this.mockServer.Verify(mc => mc.Stop(), Times.Once);116        }117        [TestMethod]118        public void EndSessionShouldSendSessionEndMessage()119        {120            this.SetupFakeCommunicationChannel();121            this.testRequestSender.EndSession();122            this.mockDataSerializer.Verify(ds => ds.SerializeMessage(MessageType.SessionEnd), Times.Once);123            this.mockChannel.Verify(c => c.Send(It.IsAny<string>()), Times.Once);124        }125        [TestMethod]126        public void EndSessionShouldNotSendSessionEndMessageIfClientDisconnected()127        {128            this.SetupFakeCommunicationChannel();129            this.testRequestSender.DiscoverTests(new DiscoveryCriteria(), this.mockDiscoveryEventsHandler.Object);130            this.RaiseClientDisconnectedEvent();131            this.testRequestSender.EndSession();132            this.mockDataSerializer.Verify(ds => ds.SerializeMessage(MessageType.SessionEnd), Times.Never);133        }134        [TestMethod]135        public void EndSessionShouldNotSendSessionEndMessageIfTestHostProcessExited()136        {137            this.SetupFakeCommunicationChannel();138            this.testRequestSender.StartTestRun(this.testRunCriteriaWithSources, this.mockExecutionEventsHandler.Object);139            this.testRequestSender.OnClientProcessExit("Dummy Message");140            this.testRequestSender.EndSession();141            this.mockDataSerializer.Verify(ds => ds.SerializeMessage(MessageType.SessionEnd), Times.Once);142        }143        [TestMethod]144        public void EndSessionShouldNotSendTestRunCancelMessageIfClientDisconnected()145        {146            this.SetupFakeCommunicationChannel();147            this.testRequestSender.DiscoverTests(new DiscoveryCriteria(), this.mockDiscoveryEventsHandler.Object);148            this.RaiseClientDisconnectedEvent();149            this.testRequestSender.SendTestRunCancel();150            this.mockChannel.Verify(mockChannel => mockChannel.Send(MessageType.CancelTestRun), Times.Never);151        }152        [TestMethod]153        public void EndSessionShouldNotSendTestRunAbortMessageIfClientDisconnected()154        {155            this.SetupFakeCommunicationChannel();156            this.testRequestSender.DiscoverTests(new DiscoveryCriteria(), this.mockDiscoveryEventsHandler.Object);157            this.RaiseClientDisconnectedEvent();158            this.testRequestSender.SendTestRunAbort();159            this.mockChannel.Verify(mockChannel => mockChannel.Send(MessageType.CancelTestRun), Times.Never);160        }161        [DataTestMethod]162        [DataRow("")]163        [DataRow(" ")]164        [DataRow(null)]165        public void OnClientProcessExitShouldSendErrorMessageIfStdErrIsEmpty(string stderr)166        {167            this.SetupFakeCommunicationChannel();168            this.testRequestSender.DiscoverTests(new DiscoveryCriteria(), this.mockDiscoveryEventsHandler.Object);169            this.testRequestSender.OnClientProcessExit(stderr);170            var expectedErrorMessage = "Reason: Test host process crashed";171            this.RaiseClientDisconnectedEvent();172            this.mockDiscoveryEventsHandler.Verify(eh => eh.HandleLogMessage(TestMessageLevel.Error, It.Is<string>(s => s.EndsWith(expectedErrorMessage))), Times.Once);173        }174        [TestMethod]175        public void OnClientProcessExitShouldNotSendErrorMessageIfOperationNotStarted()176        {177            this.SetupFakeCommunicationChannel();178            this.testRequestSender.OnClientProcessExit("Dummy Stderr");179            this.RaiseClientDisconnectedEvent();180            this.mockDiscoveryEventsHandler.Verify(eh => eh.HandleLogMessage(TestMessageLevel.Error, It.Is<string>(s => s.Contains("Dummy Stderr"))), Times.Never);181        }182        [TestMethod]183        public void OnClientProcessExitShouldNotSendRawMessageIfOperationNotStarted()184        {185            this.SetupFakeCommunicationChannel();186            this.testRequestSender.OnClientProcessExit("Dummy Stderr");187            this.RaiseClientDisconnectedEvent();188            this.mockDataSerializer.Verify(ds => ds.SerializePayload(MessageType.TestMessage, It.Is<TestMessagePayload>(p => p.Message.Contains("Dummy Stderr"))), Times.Never);189            this.mockExecutionEventsHandler.Verify(eh => eh.HandleRawMessage(It.IsAny<string>()), Times.Never);190        }191        #region Version Check Tests192        [TestMethod]193        public void CheckVersionWithTestHostShouldSendHighestSupportedVersion()194        {195            this.SetupDeserializeMessage(MessageType.VersionCheck, 99);196            this.SetupRaiseMessageReceivedOnCheckVersion();197            this.SetupFakeCommunicationChannel();198            this.testRequestSender.CheckVersionWithTestHost();199            this.mockDataSerializer.Verify(ds => ds.SerializePayload(MessageType.VersionCheck, DUMMYPROTOCOLVERSION), Times.Once);200            this.mockChannel.Verify(mc => mc.Send(It.IsAny<string>()), Times.Once);201        }202        [TestMethod]203        public void CheckVersionWithTestHostShouldThrowIfTestHostVersionDoesNotMatch()204        {205            this.SetupDeserializeMessage(MessageType.ProtocolError, string.Empty);206            this.SetupRaiseMessageReceivedOnCheckVersion();207            this.SetupFakeCommunicationChannel();208            Assert.ThrowsException<TestPlatformException>(() => this.testRequestSender.CheckVersionWithTestHost());209        }210        [TestMethod]211        public void CheckVersionWithTestHostShouldThrowIfUnexpectedResponseIsReceived()212        {213            this.SetupDeserializeMessage(MessageType.TestCasesFound, string.Empty);214            this.SetupRaiseMessageReceivedOnCheckVersion();215            this.SetupFakeCommunicationChannel();216            Assert.ThrowsException<TestPlatformException>(() => this.testRequestSender.CheckVersionWithTestHost());217        }218        [TestMethod]219        public void CheckVersionWithTestHostShouldThrowIfProtocolNegotiationTimeouts()220        {221            Environment.SetEnvironmentVariable(EnvironmentHelper.VstestConnectionTimeout, "0");222            this.SetupFakeCommunicationChannel();223            var message = Assert.ThrowsException<TestPlatformException>(() => this.testRequestSender.CheckVersionWithTestHost()).Message;224            Assert.AreEqual(message, TestRequestSenderTests.TimoutErrorMessage);225        }226        #endregion227        #region Discovery Protocol Tests228        [TestMethod]229        public void InitializeDiscoveryShouldSendCommunicationMessageWithCorrectParameters()230        {231            this.SetupFakeCommunicationChannel();232            this.testRequestSender.InitializeDiscovery(this.pathToAdditionalExtensions);233            this.mockDataSerializer.Verify(d => d.SerializePayload(MessageType.DiscoveryInitialize, this.pathToAdditionalExtensions, 1), Times.Once);234            this.mockChannel.Verify(mc => mc.Send(It.IsAny<string>()), Times.Once);235        }236        [TestMethod]237        public void InitializeDiscoveryShouldSendCommunicationMessageWithCorrectParametersWithVersion()238        {239            this.SetupFakeChannelWithVersionNegotiation(DUMMYNEGOTIATEDPROTOCOLVERSION);240            this.testRequestSender.InitializeDiscovery(this.pathToAdditionalExtensions);241            this.mockDataSerializer.Verify(d => d.SerializePayload(MessageType.DiscoveryInitialize, this.pathToAdditionalExtensions, DUMMYNEGOTIATEDPROTOCOLVERSION), Times.Once);242        }243        [TestMethod]244        public void DiscoverTestsShouldSendStartDiscoveryMessageOnChannel()245        {246            this.SetupFakeCommunicationChannel();247            this.testRequestSender.DiscoverTests(new DiscoveryCriteria(), this.mockDiscoveryEventsHandler.Object);248            this.mockDataSerializer.Verify(249                s => s.SerializePayload(MessageType.StartDiscovery, It.IsAny<DiscoveryCriteria>(), DEFAULTPROTOCOLVERSION),250                Times.Once);251            this.mockChannel.Verify(mc => mc.Send(It.IsAny<string>()), Times.Once);252        }253        [TestMethod]254        public void DiscoverTestsShouldSendStartDiscoveryMessageOnChannelWithVersion()255        {256            this.SetupFakeChannelWithVersionNegotiation(DUMMYNEGOTIATEDPROTOCOLVERSION);257            this.testRequestSender.DiscoverTests(new DiscoveryCriteria(), this.mockDiscoveryEventsHandler.Object);258            this.mockDataSerializer.Verify(259                s => s.SerializePayload(MessageType.StartDiscovery, It.IsAny<DiscoveryCriteria>(), DUMMYNEGOTIATEDPROTOCOLVERSION),260                Times.Once);261        }262        [TestMethod]263        public void DiscoverTestsShouldNotifyRawMessageOnMessageReceived()264        {265            this.SetupDeserializeMessage(MessageType.TestMessage, new TestMessagePayload());266            this.SetupFakeCommunicationChannel();267            this.testRequestSender.DiscoverTests(new DiscoveryCriteria(), this.mockDiscoveryEventsHandler.Object);268            this.RaiseMessageReceivedEvent();269            this.mockDiscoveryEventsHandler.Verify(eh => eh.HandleRawMessage("DummyData"), Times.Once);270        }271        [TestMethod]272        public void DiscoverTestsShouldNotifyDiscoveredTestsOnTestCasesFoundMessageReceived()273        {274            this.SetupDeserializeMessage<IEnumerable<TestCase>>(MessageType.TestCasesFound, new TestCase[2]);275            this.SetupFakeCommunicationChannel();276            this.testRequestSender.DiscoverTests(new DiscoveryCriteria(), this.mockDiscoveryEventsHandler.Object);277            this.RaiseMessageReceivedEvent();278            this.mockDiscoveryEventsHandler.Verify(eh => eh.HandleDiscoveredTests(It.Is<IEnumerable<TestCase>>(t => t.Count() == 2)));279        }280        [TestMethod]281        public void DiscoverTestsShouldNotifyDiscoveryCompleteOnCompleteMessageReceived()282        {283            var completePayload = new DiscoveryCompletePayload { TotalTests = 10, IsAborted = false };284            this.SetupDeserializeMessage(MessageType.DiscoveryComplete, completePayload);285            this.SetupFakeCommunicationChannel();286            this.testRequestSender.DiscoverTests(new DiscoveryCriteria(), this.mockDiscoveryEventsHandler.Object);287            this.RaiseMessageReceivedEvent();288            this.mockDiscoveryEventsHandler.Verify(eh => eh.HandleDiscoveryComplete(It.Is<DiscoveryCompleteEventArgs>(dc => dc.IsAborted == false && dc.TotalCount == 10), null));289        }290        [TestMethod]291        public void DiscoverTestsShouldStopServerOnCompleteMessageReceived()292        {293            var completePayload = new DiscoveryCompletePayload { TotalTests = 10, IsAborted = false };294            this.SetupDeserializeMessage(MessageType.DiscoveryComplete, completePayload);295            this.SetupFakeCommunicationChannel();296            this.testRequestSender.DiscoverTests(new DiscoveryCriteria(), this.mockDiscoveryEventsHandler.Object);297            this.RaiseMessageReceivedEvent();298            this.mockServer.Verify(ms => ms.Stop());299        }300        [TestMethod]301        public void DiscoverTestShouldNotifyLogMessageOnTestMessageReceived()302        {303            var message = new TestMessagePayload { MessageLevel = TestMessageLevel.Error, Message = "Message1" };304            this.SetupDeserializeMessage(MessageType.TestMessage, message);305            this.SetupFakeCommunicationChannel();306            this.testRequestSender.DiscoverTests(new DiscoveryCriteria(), this.mockDiscoveryEventsHandler.Object);307            this.RaiseMessageReceivedEvent();308            this.mockDiscoveryEventsHandler.Verify(eh => eh.HandleLogMessage(TestMessageLevel.Error, "Message1"));309        }310        [TestMethod]311        public void DiscoverTestShouldNotifyLogMessageIfExceptionThrownOnMessageReceived()312        {313            this.SetupExceptionOnMessageReceived();314            this.SetupFakeCommunicationChannel();315            this.testRequestSender.DiscoverTests(new DiscoveryCriteria(), this.mockDiscoveryEventsHandler.Object);316            this.RaiseMessageReceivedEvent();317            this.mockDiscoveryEventsHandler.Verify(eh => eh.HandleLogMessage(TestMessageLevel.Error, It.Is<string>(s => s.Contains("Dummy Message"))));318            this.mockDiscoveryEventsHandler.Verify(eh => eh.HandleRawMessage("SerializedMessage"), Times.Once);319        }320        [TestMethod]321        public void DiscoverTestShouldNotifyDiscoveryCompleteIfExceptionThrownOnMessageReceived()322        {323            this.SetupExceptionOnMessageReceived();324            this.SetupFakeCommunicationChannel();325            this.testRequestSender.DiscoverTests(new DiscoveryCriteria(), this.mockDiscoveryEventsHandler.Object);326            this.RaiseMessageReceivedEvent();327            this.mockDiscoveryEventsHandler.Verify(eh => eh.HandleDiscoveryComplete(It.Is<DiscoveryCompleteEventArgs>(dc => dc.IsAborted == true && dc.TotalCount == -1), null));328        }329        [TestMethod]330        public void DiscoverTestsShouldNotAbortDiscoveryIfClientDisconnectedAndOperationIsComplete()331        {332            var completePayload = new DiscoveryCompletePayload { TotalTests = 10, IsAborted = false };333            this.SetupDeserializeMessage(MessageType.DiscoveryComplete, completePayload);334            this.SetupFakeCommunicationChannel();335            this.testRequestSender.DiscoverTests(new DiscoveryCriteria(), this.mockDiscoveryEventsHandler.Object);336            this.RaiseMessageReceivedEvent();   // Raise discovery complete337            this.RaiseClientDisconnectedEvent();338            this.mockDiscoveryEventsHandler.Verify(eh => eh.HandleLogMessage(TestMessageLevel.Error, It.IsAny<string>()), Times.Never);339            this.mockDiscoveryEventsHandler.Verify(eh => eh.HandleDiscoveryComplete(new DiscoveryCompleteEventArgs(-1, true), null), Times.Never);340        }341        [TestMethod]342        public void DiscoverTestShouldNotifyLogMessageIfClientDisconnected()343        {344            // Expect default error message since we've not set any client exit message345            var expectedErrorMessage = "Reason: Unable to communicate";346            this.SetupFakeCommunicationChannel();347            this.mockDataSerializer.Setup(ds => ds.SerializePayload(MessageType.TestMessage, It.Is<TestMessagePayload>(p => p.Message.Contains(expectedErrorMessage))))348                .Returns("Serialized error");349            this.testRequestSender.DiscoverTests(new DiscoveryCriteria(), this.mockDiscoveryEventsHandler.Object);350            this.RaiseClientDisconnectedEvent();351            this.mockDiscoveryEventsHandler.Verify(eh => eh.HandleLogMessage(TestMessageLevel.Error, It.Is<string>(s => s.Contains(expectedErrorMessage))));352            this.mockDiscoveryEventsHandler.Verify(eh => eh.HandleRawMessage(It.Is<string>(s => !string.IsNullOrEmpty(s) && s.Equals("Serialized error"))), Times.Once);353        }354        [TestMethod]355        public void DiscoverTestShouldNotifyLogMessageIfClientDisconnectedWithClientExit()356        {357            this.SetupFakeCommunicationChannel();358            this.mockDataSerializer.Setup(ds => ds.SerializePayload(MessageType.TestMessage, It.Is<TestMessagePayload>(p => p.Message.Contains("Dummy Stderr"))))359                .Returns("Serialized Stderr");360            this.testRequestSender.DiscoverTests(new DiscoveryCriteria(), this.mockDiscoveryEventsHandler.Object);361            this.testRequestSender.OnClientProcessExit("Dummy Stderr");362            this.RaiseClientDisconnectedEvent();363            this.mockDiscoveryEventsHandler.Verify(eh => eh.HandleLogMessage(TestMessageLevel.Error, It.Is<string>(s => s.Contains("Dummy Stderr"))), Times.Once);364            this.mockDiscoveryEventsHandler.Verify(eh => eh.HandleRawMessage(It.Is<string>(s => !string.IsNullOrEmpty(s) && s.Equals("Serialized Stderr"))), Times.Once);365        }366        [TestMethod]367        public void DiscoverTestShouldNotifyDiscoveryCompleteIfClientDisconnected()368        {369            this.SetupFakeCommunicationChannel();370            this.testRequestSender.DiscoverTests(new DiscoveryCriteria(), this.mockDiscoveryEventsHandler.Object);371            this.RaiseClientDisconnectedEvent();372            this.mockDiscoveryEventsHandler.Verify(eh => eh.HandleDiscoveryComplete(It.Is<DiscoveryCompleteEventArgs>(dc => dc.IsAborted == true && dc.TotalCount == -1), null));373        }374        #endregion375        #region Execution Protocol Tests376        [TestMethod]377        public void InitializeExecutionShouldSendCommunicationMessageWithCorrectParameters()378        {379            this.SetupFakeCommunicationChannel();380            this.testRequestSender.InitializeExecution(this.pathToAdditionalExtensions);381            this.mockDataSerializer.Verify(d => d.SerializePayload(MessageType.ExecutionInitialize, this.pathToAdditionalExtensions, 1), Times.Once);382            this.mockChannel.Verify(mc => mc.Send(It.IsAny<string>()), Times.Once);383        }384        [TestMethod]385        public void InitializeExecutionShouldSendCommunicationMessageWithCorrectParametersWithVersion()386        {387            this.SetupFakeChannelWithVersionNegotiation(DUMMYNEGOTIATEDPROTOCOLVERSION);388            this.testRequestSender.InitializeExecution(this.pathToAdditionalExtensions);389            this.mockDataSerializer.Verify(d => d.SerializePayload(MessageType.ExecutionInitialize, this.pathToAdditionalExtensions, DUMMYNEGOTIATEDPROTOCOLVERSION), Times.Once);390        }391        [TestMethod]392        public void StartTestRunShouldSendStartTestExecutionWithSourcesOnChannel()393        {394            this.SetupFakeCommunicationChannel();395            this.testRequestSender.StartTestRun(this.testRunCriteriaWithSources, this.mockExecutionEventsHandler.Object);396            this.mockDataSerializer.Verify(d => d.SerializePayload(MessageType.StartTestExecutionWithSources, this.testRunCriteriaWithSources, DEFAULTPROTOCOLVERSION), Times.Once);397            this.mockChannel.Verify(mc => mc.Send(It.IsAny<string>()), Times.Once);398        }399        [TestMethod]400        public void StartTestRunShouldSendStartTestExecutionWithSourcesOnChannelWithVersion()401        {402            this.SetupFakeChannelWithVersionNegotiation(DUMMYNEGOTIATEDPROTOCOLVERSION);403            this.testRequestSender.StartTestRun(this.testRunCriteriaWithSources, this.mockExecutionEventsHandler.Object);404            this.mockDataSerializer.Verify(d => d.SerializePayload(MessageType.StartTestExecutionWithSources, this.testRunCriteriaWithSources, DUMMYNEGOTIATEDPROTOCOLVERSION), Times.Once);405        }406        [TestMethod]407        public void StartTestRunWithTestsShouldSendStartTestExecutionWithTestsOnChannel()408        {409            var runCriteria = new TestRunCriteriaWithTests(new TestCase[2], "runsettings", null, null);410            this.SetupFakeCommunicationChannel();411            this.testRequestSender.StartTestRun(runCriteria, this.mockExecutionEventsHandler.Object);412            this.mockDataSerializer.Verify(d => d.SerializePayload(MessageType.StartTestExecutionWithTests, runCriteria, DEFAULTPROTOCOLVERSION), Times.Once);413            this.mockChannel.Verify(mc => mc.Send(It.IsAny<string>()), Times.Once);414        }415        [TestMethod]416        public void StartTestRunWithTestsShouldSendStartTestExecutionWithTestsOnChannelWithVersion()417        {418            var runCriteria = new TestRunCriteriaWithTests(new TestCase[2], "runsettings", null, null);419            this.SetupFakeChannelWithVersionNegotiation(DUMMYNEGOTIATEDPROTOCOLVERSION);420            this.testRequestSender.StartTestRun(runCriteria, this.mockExecutionEventsHandler.Object);421            this.mockDataSerializer.Verify(d => d.SerializePayload(MessageType.StartTestExecutionWithTests, runCriteria, DUMMYNEGOTIATEDPROTOCOLVERSION), Times.Once);422        }423        [TestMethod]424        public void StartTestRunShouldNotifyRawMessageOnMessageReceived()425        {426            this.SetupDeserializeMessage(MessageType.TestMessage, new TestMessagePayload());427            this.SetupFakeCommunicationChannel();428            this.testRequestSender.StartTestRun(this.testRunCriteriaWithSources, this.mockExecutionEventsHandler.Object);429            this.RaiseMessageReceivedEvent();430            this.mockExecutionEventsHandler.Verify(eh => eh.HandleRawMessage("DummyData"), Times.Once);431        }432        [TestMethod]433        public void StartTestRunShouldNotifyTestRunStatsChangeOnRunStatsMessageReceived()434        {435            var testRunChangedArgs = new TestRunChangedEventArgs(436                null,437                new Microsoft.VisualStudio.TestPlatform.ObjectModel.TestResult[2],438                new TestCase[2]);439            this.SetupDeserializeMessage(MessageType.TestRunStatsChange, testRunChangedArgs);440            this.SetupFakeCommunicationChannel();441            this.testRequestSender.StartTestRun(this.testRunCriteriaWithSources, this.mockExecutionEventsHandler.Object);442            this.RaiseMessageReceivedEvent();443            this.mockExecutionEventsHandler.Verify(eh => eh.HandleTestRunStatsChange(testRunChangedArgs), Times.Once);444        }445        [TestMethod]446        public void StartTestRunShouldNotifyExecutionCompleteOnRunCompleteMessageReceived()447        {448            var testRunCompletePayload = new TestRunCompletePayload449            {450                TestRunCompleteArgs = new TestRunCompleteEventArgs(null, false, false, null, null, TimeSpan.MaxValue),451                LastRunTests = new TestRunChangedEventArgs(null, null, null),452                RunAttachments = new List<AttachmentSet>()453            };454            this.SetupDeserializeMessage(MessageType.ExecutionComplete, testRunCompletePayload);455            this.SetupFakeCommunicationChannel();456            this.testRequestSender.StartTestRun(this.testRunCriteriaWithSources, this.mockExecutionEventsHandler.Object);457            this.RaiseMessageReceivedEvent();458            this.mockExecutionEventsHandler.Verify(459                eh => eh.HandleTestRunComplete(460                    testRunCompletePayload.TestRunCompleteArgs,461                    testRunCompletePayload.LastRunTests,462                    testRunCompletePayload.RunAttachments,463                    It.IsAny<ICollection<string>>()),464                Times.Once);465        }466        [TestMethod]467        public void StartTestRunShouldStopServerOnRunCompleteMessageReceived()468        {469            var testRunCompletePayload = new TestRunCompletePayload470            {471                TestRunCompleteArgs = new TestRunCompleteEventArgs(null, false, false, null, null, TimeSpan.MaxValue),472                LastRunTests = new TestRunChangedEventArgs(null, null, null),473                RunAttachments = new List<AttachmentSet>()474            };475            this.SetupDeserializeMessage(MessageType.ExecutionComplete, testRunCompletePayload);476            this.SetupFakeCommunicationChannel();477            this.testRequestSender.StartTestRun(this.testRunCriteriaWithSources, this.mockExecutionEventsHandler.Object);478            this.RaiseMessageReceivedEvent();479            this.mockServer.Verify(ms => ms.Stop());480        }481        [TestMethod]482        public void StartTestRunShouldNotifyLogMessageOnTestMessageReceived()483        {484            var testMessagePayload = new TestMessagePayload { MessageLevel = TestMessageLevel.Error, Message = "Dummy" };485            this.SetupDeserializeMessage(MessageType.TestMessage, testMessagePayload);486            this.SetupFakeCommunicationChannel();487            this.testRequestSender.StartTestRun(this.testRunCriteriaWithSources, this.mockExecutionEventsHandler.Object);488            this.RaiseMessageReceivedEvent();489            this.mockExecutionEventsHandler.Verify(eh => eh.HandleLogMessage(TestMessageLevel.Error, "Dummy"), Times.Once);490        }491        [TestMethod]492        public void StartTestRunShouldNotifyLaunchWithDebuggerOnMessageReceived()493        {494            var launchMessagePayload = new TestProcessStartInfo();495            this.SetupDeserializeMessage(MessageType.LaunchAdapterProcessWithDebuggerAttached, launchMessagePayload);496            this.SetupFakeCommunicationChannel();497            this.testRequestSender.StartTestRun(this.testRunCriteriaWithSources, this.mockExecutionEventsHandler.Object);498            this.RaiseMessageReceivedEvent();499            this.mockExecutionEventsHandler.Verify(eh => eh.LaunchProcessWithDebuggerAttached(launchMessagePayload), Times.Once);500        }501        [TestMethod]502        public void StartTestRunShouldSendLaunchDebuggerAttachedCallbackOnMessageReceived()503        {504            var launchMessagePayload = new TestProcessStartInfo();505            this.SetupDeserializeMessage(MessageType.LaunchAdapterProcessWithDebuggerAttached, launchMessagePayload);506            this.SetupFakeCommunicationChannel();507            this.testRequestSender.StartTestRun(this.testRunCriteriaWithSources, this.mockExecutionEventsHandler.Object);508            this.RaiseMessageReceivedEvent();509            this.mockDataSerializer.Verify(ds => ds.SerializePayload(MessageType.LaunchAdapterProcessWithDebuggerAttachedCallback, It.IsAny<int>(), 1), Times.Once);510            this.mockChannel.Verify(c => c.Send(It.IsAny<string>()), Times.AtLeastOnce);511        }512        [TestMethod]513        public void StartTestRunShouldSendLaunchDebuggerAttachedCallbackOnMessageReceivedWithVersion()514        {515            var launchMessagePayload = new TestProcessStartInfo();516            this.SetupFakeChannelWithVersionNegotiation(DUMMYNEGOTIATEDPROTOCOLVERSION);517            this.SetupDeserializeMessage(MessageType.LaunchAdapterProcessWithDebuggerAttached, launchMessagePayload);518            this.testRequestSender.StartTestRun(this.testRunCriteriaWithSources, this.mockExecutionEventsHandler.Object);519            this.RaiseMessageReceivedEvent();520            this.mockDataSerializer.Verify(ds => ds.SerializePayload(MessageType.LaunchAdapterProcessWithDebuggerAttachedCallback, It.IsAny<int>(), DUMMYNEGOTIATEDPROTOCOLVERSION), Times.Once);521        }522        [TestMethod]523        public void StartTestRunShouldNotifyLogMessageIfExceptionIsThrownOnMessageReceived()524        {525            this.SetupExceptionOnMessageReceived();526            this.SetupFakeCommunicationChannel();527            this.testRequestSender.StartTestRun(this.testRunCriteriaWithSources, this.mockExecutionEventsHandler.Object);528            this.RaiseMessageReceivedEvent();529            this.mockExecutionEventsHandler.Verify(eh => eh.HandleLogMessage(TestMessageLevel.Error, It.Is<string>(s => s.Contains("Dummy Message"))), Times.Once);530            this.mockExecutionEventsHandler.Verify(eh => eh.HandleRawMessage("SerializedMessage"), Times.Once);531        }532        [TestMethod]533        public void StartTestRunShouldNotifyExecutionCompleteIfExceptionIsThrownOnMessageReceived()534        {535            this.SetupExceptionOnMessageReceived();536            this.SetupFakeCommunicationChannel();537            this.testRequestSender.StartTestRun(this.testRunCriteriaWithSources, this.mockExecutionEventsHandler.Object);538            this.RaiseMessageReceivedEvent();539            this.mockExecutionEventsHandler.Verify(eh => eh.HandleTestRunComplete(It.Is<TestRunCompleteEventArgs>(t => t.IsAborted), null, null, null), Times.Once);540            this.mockExecutionEventsHandler.Verify(eh => eh.HandleRawMessage("SerializedAbortedPayload"), Times.Once);541        }542        [TestMethod]543        public void StartTestRunShouldNotNotifyExecutionCompleteIfClientDisconnectedAndOperationComplete()544        {545            var testRunCompletePayload = new TestRunCompletePayload546            {547                TestRunCompleteArgs = new TestRunCompleteEventArgs(null, false, false, null, null, TimeSpan.MaxValue),548                LastRunTests = new TestRunChangedEventArgs(null, null, null),549                RunAttachments = new List<AttachmentSet>()550            };551            this.SetupDeserializeMessage(MessageType.ExecutionComplete, testRunCompletePayload);552            this.SetupFakeCommunicationChannel();553            this.testRequestSender.StartTestRun(this.testRunCriteriaWithSources, this.mockExecutionEventsHandler.Object);554            this.RaiseMessageReceivedEvent();   // Raise test run complete555            this.RaiseClientDisconnectedEvent();556            this.mockExecutionEventsHandler.Verify(eh => eh.HandleTestRunComplete(It.Is<TestRunCompleteEventArgs>(t => t.IsAborted), null, null, null), Times.Never);557            this.mockExecutionEventsHandler.Verify(eh => eh.HandleRawMessage("SerializedAbortedPayload"), Times.Never);558        }559        [TestMethod]560        public void StartTestRunShouldNotifyErrorLogMessageIfClientDisconnected()561        {562            this.SetupFakeCommunicationChannel();563            this.testRequestSender.StartTestRun(this.testRunCriteriaWithSources, this.mockExecutionEventsHandler.Object);564            this.RaiseClientDisconnectedEvent();565            // Expect default error message since we've not set any client exit message566            var expectedErrorMessage = "Reason: Unable to communicate";567            this.mockExecutionEventsHandler.Verify(eh => eh.HandleLogMessage(TestMessageLevel.Error, It.Is<string>(s => s.Contains(expectedErrorMessage))), Times.Once);568        }569        [TestMethod]570        public void StartTestRunShouldNotifyErrorLogMessageIfClientDisconnectedWithClientExit()571        {572            this.SetupFakeCommunicationChannel();573            this.testRequestSender.StartTestRun(this.testRunCriteriaWithSources, this.mockExecutionEventsHandler.Object);574            this.testRequestSender.OnClientProcessExit("Dummy Stderr");575            this.RaiseClientDisconnectedEvent();576            var expectedErrorMessage = "Reason: Test host process crashed : Dummy Stderr";577            this.mockExecutionEventsHandler.Verify(eh => eh.HandleLogMessage(TestMessageLevel.Error, It.Is<string>(s => s.Contains(expectedErrorMessage))), Times.Once);578        }579        [TestMethod]580        public void StartTestRunShouldNotifyExecutionCompleteIfClientDisconnected()581        {582            this.SetupOperationAbortedPayload();583            this.SetupFakeCommunicationChannel();584            this.testRequestSender.StartTestRun(this.testRunCriteriaWithSources, this.mockExecutionEventsHandler.Object);585            this.RaiseClientDisconnectedEvent();586            this.mockExecutionEventsHandler.Verify(eh => eh.HandleTestRunComplete(It.Is<TestRunCompleteEventArgs>(t => t.IsAborted), null, null, null), Times.Once);587            this.mockExecutionEventsHandler.Verify(eh => eh.HandleRawMessage("SerializedAbortedPayload"), Times.Once);588        }...OnClientProcessExit
Using AI Code Generation
1using System;2using System.Collections.Generic;3using System.Linq;4using System.Text;5using System.Threading.Tasks;6using Microsoft.VisualStudio.TestPlatform.CommunicationUtilities;7using Microsoft.VisualStudio.TestPlatform.ObjectModel;8using Microsoft.VisualStudio.TestPlatform.ObjectModel.Client;9using Microsoft.VisualStudio.TestPlatform.ObjectModel.Logging;10using System.Diagnostics;11using System.IO;12using System.Threading;13{14    {15        static void Main(string[] args)16        {17            var testRequestSender = new TestRequestSender();18            testRequestSender.InitializeCommunication();19            testRequestSender.OnClientProcessExit += testRequestSender_OnClientProcessExit;20            testRequestSender.StartTestRun(21                new TestRunCriteria(new List<string> { "C:\\Users\\sudhakar\\Documents\\Visual Studio 2013\\Projects\\ConsoleApplication1\\ConsoleApplication1\\bin\\Debug\\ConsoleApplication1.exe" }, 1, true, null),22                new TestPlatformOptions(),23                new TestRunEventsHandler());24            Console.ReadLine();25        }26        static void testRequestSender_OnClientProcessExit(object sender, EventArgs e)27        {28            Console.WriteLine("testRequestSender_OnClientProcessExit");29        }30    }31}32using System;33using System.Collections.Generic;34using System.Linq;35using System.Text;36using System.Threading.Tasks;37using Microsoft.VisualStudio.TestPlatform.CommunicationUtilities;38using Microsoft.VisualStudio.TestPlatform.ObjectModel;39using Microsoft.VisualStudio.TestPlatform.ObjectModel.Client;40using Microsoft.VisualStudio.TestPlatform.ObjectModel.Logging;41using System.Diagnostics;42using System.IO;43using System.Threading;44{45    {46        static void Main(string[] args)47        {48            var testRequestSender = new TestRequestSender();49            testRequestSender.InitializeCommunication();50            testRequestSender.OnClientProcessExit += testRequestSender_OnClientProcessExit;51            testRequestSender.StartTestRun(52                new TestRunCriteria(new List<string> { "C:\\Users\\sudhakar\\Documents\\Visual Studio 2013\\Projects\\ConsoleApplication1\\ConsoleApplication1\\bin\\Debug\\ConsoleApplication1.exe" }, 1, true, null),53                new TestPlatformOptions(),54                new TestRunEventsHandler());55            Console.ReadLine();56        }57        static void testRequestSender_OnClientProcessExit(object sender, EventArgs e)58        {59            Console.WriteLine("testRequestSenderOnClientProcessExit
Using AI Code Generation
1using System;2using System.Collections.Generic;3using System.Linq;4using System.Text;5using System.Threading.Tasks;6using Microsoft.VisualStudio.TestPlatform.CommunicationUtilities;7using Microsoft.VisualStudio.TestPlatform.ObjectModel;8using Microsoft.VisualStudio.TestPlatform.ObjectModel.Client;9using Microsoft.VisualStudio.TestPlatform.ObjectModel.Logging;10using Microsoft.VisualStudio.TestPlatform.ObjectModel.Utilities;11using System.Diagnostics;12using System.Threading;13using System.Runtime.InteropServices;14using System.IO;15using System.Reflection;16using System.Xml;17using System.Xml.Linq;18using System.Runtime.Serialization;19using System.Runtime.Serialization.Json;20using System.Net.Http;21using System.Net.Http.Headers;22using System.Net;23{24    {25        public void HandleDiscoveryComplete(int totalTests, IEnumerable<TestCase> lastChunk, bool isAborted, IEnumerable<TestCase> newTests, IEnumerable<TestCase> modifiedTests, IEnumerable<TestCase> deletedTests, ITestRunSettings newRunSettings, IEnumerable<string> executorUris, TimeSpan elapsedTime)26        {27            Console.WriteLine("Total tests: {0}", totalTests);28            Console.WriteLine("Last chunk: {0}", lastChunk);29            Console.WriteLine("Is aborted: {0}", isAborted);30            Console.WriteLine("New tests: {0}", newTests);31            Console.WriteLine("Modified tests: {0}", modifiedTests);32            Console.WriteLine("Deleted tests: {0}", deletedTests);33            Console.WriteLine("New run settings: {0}", newRunSettings);34            Console.WriteLine("Executor URIs: {0}", executorUris);35            Console.WriteLine("Elapsed time: {0}", elapsedTime);36        }37        public void HandleDiscoveredTests(IEnumerable<TestCase> discoveredTestCases)38        {39            Console.WriteLine("Discovered test cases: {0}", discoveredTestCases);40        }41        public void HandleLogMessage(TestMessageLevel level, string message)42        {43            Console.WriteLine("Log message: {0} - {1}", level, message);44        }45        public void HandleRawMessage(string rawMessage)46        {47            Console.WriteLine("Raw message: {0}", rawMessage);48        }49    }50    {51        public void HandleRawMessage(string rawMessage)52        {53            Console.WriteLine("Raw message: {0}", rawMessage);54        }55        public void HandleLogMessage(TestMessageLevel level, string message)56        {57            Console.WriteLine("Log message: {0} - {1}", levelOnClientProcessExit
Using AI Code Generation
1using System;2using System.Collections.Generic;3using System.Linq;4using System.Text;5using System.Threading.Tasks;6using Microsoft.VisualStudio.TestPlatform.CommunicationUtilities;7{8    {9        static void Main(string[] args)10        {11            TestRequestSender sender = new TestRequestSender();12            sender.OnClientProcessExit += Sender_OnClientProcessExit;13            sender.InitializeCommunication();14            Console.ReadLine();15        }16        private static void Sender_OnClientProcessExit(object sender, EventArgs e)17        {18            Console.WriteLine("Client exited");19        }20    }21}22using System;23using System.Collections.Generic;24using System.Linq;25using System.Text;26using System.Threading.Tasks;27using Microsoft.VisualStudio.TestPlatform.CommunicationUtilities;28{29    {30        static void Main(string[] args)31        {32            TestRequestSender sender = new TestRequestSender();33            sender.OnClientProcessExit += Sender_OnClientProcessExit;34            sender.InitializeCommunication();35            Console.ReadLine();36        }37        private static void Sender_OnClientProcessExit(object sender, EventArgs e)38        {39            Console.WriteLine("Client exited");40        }41    }42}43using System;44using System.Collections.Generic;45using System.Linq;46using System.Text;47using System.Threading.Tasks;48using Microsoft.VisualStudio.TestPlatform.CommunicationUtilities;49{50    {51        static void Main(string[] args)52        {53            TestRequestSender sender = new TestRequestSender();54            sender.OnClientProcessExit += Sender_OnClientProcessExit;55            sender.InitializeCommunication();56            Console.ReadLine();57        }58        private static void Sender_OnClientProcessExit(object sender, EventArgs e)59        {60            Console.WriteLine("Client exited");61        }62    }63}64using System;65using System.Collections.Generic;66using System.Linq;67using System.Text;68using System.Threading.Tasks;69using Microsoft.VisualStudio.TestPlatform.CommunicationUtilities;70{71    {72        static void Main(string[] args)73        {74            TestRequestSender sender = new TestRequestSender();OnClientProcessExit
Using AI Code Generation
1using Microsoft.VisualStudio.TestPlatform.CommunicationUtilities;2using Microsoft.VisualStudio.TestPlatform.ObjectModel;3using System;4using System.Collections.Generic;5using System.Linq;6using System.Text;7using System.Threading.Tasks;8{9    {10        static void Main(string[] args)11        {12            TestRequestSender sender = new TestRequestSender();13            sender.OnClientProcessExit += Sender_OnClientProcessExit;14            Console.ReadLine();15        }16        private static void Sender_OnClientProcessExit(object sender, EventArgs e)17        {18            Console.WriteLine("Process exited");19        }20    }21}22using Microsoft.VisualStudio.TestPlatform.CommunicationUtilities;23using Microsoft.VisualStudio.TestPlatform.ObjectModel;24using System;25using System.Collections.Generic;26using System.Linq;27using System.Text;28using System.Threading.Tasks;29{30    {31        static void Main(string[] args)32        {33            TestRequestSender sender = new TestRequestSender();34            sender.OnClientProcessExit += Sender_OnClientProcessExit;35            Console.ReadLine();36        }37        private static void Sender_OnClientProcessExit(object sender, EventArgs e)38        {39            Console.WriteLine("Process exited");40        }41    }42}43using Microsoft.VisualStudio.TestPlatform.CommunicationUtilities;44using Microsoft.VisualStudio.TestPlatform.ObjectModel;45using System;46using System.Collections.Generic;47using System.Linq;48using System.Text;49using System.Threading.Tasks;50{51    {52        static void Main(string[] args)53        {54            TestRequestSender sender = new TestRequestSender();55            sender.OnClientProcessExit += Sender_OnClientProcessExit;56            Console.ReadLine();57        }58        private static void Sender_OnClientProcessExit(object sender, EventArgs e)59        {60            Console.WriteLine("Process exited");61        }62    }63}64using Microsoft.VisualStudio.TestPlatform.CommunicationUtilities;65using Microsoft.VisualStudio.TestPlatform.ObjectModel;66using System;67using System.Collections.Generic;68using System.Linq;69using System.Text;70using System.Threading.Tasks;71{72    {73        static void Main(string[] args)OnClientProcessExit
Using AI Code Generation
1using System;2using System.Diagnostics;3using System.IO;4using System.Linq;5using System.Reflection;6using Microsoft.VisualStudio.TestPlatform.CommunicationUtilities;7using Microsoft.VisualStudio.TestPlatform.ObjectModel;8using Microsoft.VisualStudio.TestPlatform.ObjectModel.Client;9using Microsoft.VisualStudio.TestPlatform.ObjectModel.Logging;10{11    {12        static void Main(string[] args)13        {14            var testRequestSender = new TestRequestSender();15            testRequestSender.InitializeCommunication();16            testRequestSender.LaunchTestHost(new TestProcessStartInfo17            {18                FileName = "C:\\Program Files (x86)\\Microsoft Visual Studio 14.0\\Common7\\IDE\\Extensions\\TestPlatform\\vstest.console.exe",19                Arguments = string.Format("\"{0}\"", "3.dll"),20                {21                    { "PATH", Environment.GetEnvironmentVariable("PATH") }22                }23            }, 5000);24            testRequestSender.DiscoverTests(new[] { "3.dll" }, null, null, new TestPlatformOptions(), new DiscoveryEventHandler());25            Console.ReadLine();26        }27    }28    {29        public void HandleDiscoveryComplete(DiscoveryCompleteEventArgs discoveryCompleteEventArgs, IEnumerable<TestCase> lastChunk)30        {31            Console.WriteLine("Discovery complete");32        }33        public void HandleDiscoveredTests(IEnumerable<TestCase> discoveredTestCases)34        {35            Console.WriteLine("Discovered tests");36        }37        public void HandleRawMessage(string rawMessage)38        {39            Console.WriteLine("Raw message");40        }41        public void HandleLogMessage(TestMessageLevel level, string message)42        {43            Console.WriteLine("Log message");44        }45    }46    {47        public void HandleTestRunComplete(TestRunCompleteEventArgs testRunCompleteEventArgs, IEnumerable<AttachmentSet> lastChunk)48        {49            Console.WriteLine("Test run complete");50        }51        public void HandleTestRunStatsChange(TestOnClientProcessExit
Using AI Code Generation
1using System;2using System.Diagnostics;3using System.Threading;4using Microsoft.VisualStudio.TestPlatform.CommunicationUtilities;5using Microsoft.VisualStudio.TestPlatform.ObjectModel;6using Microsoft.VisualStudio.TestPlatform.ObjectModel.Client;7{8    {9        static void Main(string[] args)10        {11            TestRequestSender testRequestSender = new TestRequestSender();12            testRequestSender.InitializeCommunication();13            ProcessStartInfo startInfo = new ProcessStartInfo("C:\\Program Files (x86)\\Microsoft Visual Studio 14.0\\Common7\\IDE\\CommonExtensions\\Microsoft\\TestWindow\\vstest.console.exe", "C:\\Users\\User\\Documents\\test1.dll");14            Process process = new Process();15            process.StartInfo = startInfo;16            process.Start();17            Thread.Sleep(5000);18            testRequestSender.OnClientProcessExit += TestRequestSender_OnClientProcessExit;19            testRequestSender.AttachToProcess(process.Id);20            Thread.Sleep(5000);21            testRequestSender.DetachFromProcess(process.Id);22            testRequestSender.OnClientProcessExit -= TestRequestSender_OnClientProcessExit;23            testRequestSender.Close();24            Console.ReadKey();25        }26        private static void TestRequestSender_OnClientProcessExit(object sender, EventArgs e)27        {28            Console.WriteLine("Client process exited");29        }30    }31}32using System;33using System.Diagnostics;34using System.Threading;35using Microsoft.VisualStudio.TestPlatform.CommunicationUtilities;36using Microsoft.VisualStudio.TestPlatform.ObjectModel;37using Microsoft.VisualStudio.TestPlatform.ObjectModel.Client;38{39    {40        static void Main(string[] args)41        {42            TestRequestSender testRequestSender = new TestRequestSender();43            testRequestSender.InitializeCommunication();44            ProcessStartInfo startInfo = new ProcessStartInfo("C:\\Program Files (x86)\\Microsoft Visual Studio 14.0\\Common7\\IDE\\CommonExtensions\\Microsoft\\TestOnClientProcessExit
Using AI Code Generation
1using System;2using System.Diagnostics;3using System.IO;4using System.Threading;5using System.Xml;6using Microsoft.VisualStudio.TestPlatform.CommunicationUtilities;7using Microsoft.VisualStudio.TestPlatform.ObjectModel;8using Microsoft.VisualStudio.TestPlatform.ObjectModel.Client;9using Microsoft.VisualStudio.TestPlatform.ObjectModel.Logging;10using Microsoft.VisualStudio.TestPlatform.Utilities;11{12    {13        private static TestRequestSender testRequestSender;14        private static ManualResetEvent runCompleteEvent;15        private static string testSource;16        private static string testAdapterPath;17        private static string runSettings;18        private static bool isInitialized;19        private static string testHostVersion;20        private static string testHostPath;21        private static string parentProcessId;22        private static string endpoint;23        private static string role;24        private static string environment;25        private static string framework;26        private static string runConfiguration;27        private static string testCaseFilter;28        private static string testRunDirectory;29        private static string logFileName;30        private static string logFileDirectory;31        private static string logFileFullPath;32        private static string testRunDirectoryParent;33        private static string logFileParent;34        private static string logFileParentParent;35        private static string logFileParentParentParent;36        private static string logFileParentParentParentParent;37        private static string logFileParentParentParentParentParent;38        private static string logFileParentParentParentParentParentParent;39        private static string logFileParentParentParentParentParentParentParent;40        private static string logFileParentParentParentParentParentParentParentParent;41        private static string logFileParentParentParentParentParentParentParentParentParent;OnClientProcessExit
Using AI Code Generation
1using System;2using System.Collections.Generic;3using System.Linq;4using System.Text;5using System.Threading.Tasks;6using Microsoft.VisualStudio.TestPlatform.CommunicationUtilities;7{8    {9        static void Main(string[] args)10        {11            var testRequestSender = new TestRequestSender();12            testRequestSender.InitializeCommunication();13            testRequestSender.WaitForRequestHandlerConnection(1000);14            testRequestSender.OnClientProcessExit += (sender, args) =>15            {16                Console.WriteLine("Exit Code: " + testRequestSender.GetTestProcessExitCode());17            };18            Console.ReadLine();19        }20    }21}OnClientProcessExit
Using AI Code Generation
1using System;2using System.Diagnostics;3using System.IO;4using System.Linq;5using System.Reflection;6using Microsoft.VisualStudio.TestPlatform.CommunicationUtilities;7using Microsoft.VisualStudio.TestPlatform.ObjectModel;8using Microsoft.VisualStudio.TestPlatform.ObjectModel.Client;9using Microsoft.VisualStudio.TestPlatform.ObjectModel.Logging;10{11    {12        static void Main(string[] args)13        {14            var testRequestSender = new TestRequestSender();15            testRequestSender.InitializeCommunication();16            testRequestSender.LaunchTestHost(new TestProcessStartInfo17            {18                FileName = "C:\\Program Files (x86)\\Microsoft Visual Studio 14.0\\Common7\\IDE\\Extensions\\TestPlatform\\vstest.console.exe",19                Arguments = string.Format("\"{0}\"", "3.dll"),20                {21                    { "PATH", Environment.GetEnvironmentVariable("PATH") }22                }23            }, 5000);24            testRequestSender.DiscoverTests(new[] { "3.dll" }, null, null, new TestPlatformOptions(), new DiscoveryEventHandler());25            Console.ReadLine();26        }27    }28    {29        public void HandleDiscoveryComplete(DiscoveryCompleteEventArgs discoveryCompleteEventArgs, IEnumerable<TestCase> lastChunk)30        {31            Console.WriteLine("Discovery complete");32        }33        public void HandleDiscoveredTests(IEnumerable<TestCase> discoveredTestCases)34        {35            Console.WriteLine("Discovered tests");36        }37        public void HandleRawMessage(string rawMessage)38        {39            Console.WriteLine("Raw message");40        }41        public void HandleLogMessage(TestMessageLevel level, string message)42        {43            Console.WriteLine("Log message");44        }45    }46    {47        public void HandleTestRunComplete(TestRunCompleteEventArgs testRunCompleteEventArgs, IEnumerable<AttachmentSet> lastChunk)48        {49            Console.WriteLine("Test run complete");50        }51        public void HandleTestRunStatsChange(TestOnClientProcessExit
Using AI Code Generation
1using System;2using System.Diagnostics;3using System.IO;4using System.Threading;5using System.Xml;6using Microsoft.VisualStudio.TestPlatform.CommunicationUtilities;7using Microsoft.VisualStudio.TestPlatform.ObjectModel;8using Microsoft.VisualStudio.TestPlatform.ObjectModel.Client;9using Microsoft.VisualStudio.TestPlatform.ObjectModel.Logging;10using Microsoft.VisualStudio.TestPlatform.Utilities;11{12    {13        private static TestRequestSender testRequestSender;14        private static ManualResetEvent runCompleteEvent;15        private static string testSource;16        private static string testAdapterPath;17        private static string runSettings;18        private static bool isInitialized;19        private static string testHostVersion;20        private static string testHostPath;21        private static string parentProcessId;22        private static string endpoint;23        private static string role;24        private static string environment;25        private static string framework;26        private static string runConfiguration;27        private static string testCaseFilter;28        private static string testRunDirectory;29        private static string logFileName;30        private static string logFileDirectory;31        private static string logFileFullPath;32        private static string testRunDirectoryParent;33        private static string logFileParent;34        private static string logFileParentParent;35        private static string logFileParentParentParent;36        private static string logFileParentParentParentParent;37        private static string logFileParentParentParentParentParent;38        private static string logFileParentParentParentParentParentParent;39        private static string logFileParentParentParentParentParentParentParent;40        private static string logFileParentParentParentParentParentParentParentParent;41        private static string logFileParentParentParentParentParentParentParentParentParent;OnClientProcessExit
Using AI Code Generation
1using System;2using System.Collections.Generic;3using System.Linq;4using System.Text;5using System.Threading.Tasks;6using Microsoft.VisualStudio.TestPlatform.CommunicationUtilities;7{8    {9        static void Main(string[] args)10        {11            var testRequestSender = new TestRequestSender();12            testRequestSender.InitializeCommunication();13            testRequestSender.WaitForRequestHandlerConnection(1000);14            testRequestSender.OnClientProcessExit += (sender, args) =>15            {16                Console.WriteLine("Exit Code: " + testRequestSender.GetTestProcessExitCode());17            };18            Console.ReadLine();19        }20    }21}OnClientProcessExit
Using AI Code Generation
1using System.Linq;2using System.Text;3using System.Threading.Tasks;4{5    {6        static void Main(string[] args)OnClientProcessExit
Using AI Code Generation
1using System;2using System.Diagnostics;3using System.IO;4using System.Linq;5using System.Reflection;6using Microsoft.VisualStudio.TestPlatform.CommunicationUtilities;7using Microsoft.VisualStudio.TestPlatform.ObjectModel;8using Microsoft.VisualStudio.TestPlatform.ObjectModel.Client;9using Microsoft.VisualStudio.TestPlatform.ObjectModel.Logging;10{11    {12        static void Main(string[] args)13        {14            var testRequestSender = new TestRequestSender();15            testRequestSender.InitializeCommunication();16            testRequestSender.LaunchTestHost(new TestProcessStartInfo17            {18                FileName = "C:\\Program Files (x86)\\Microsoft Visual Studio 14.0\\Common7\\IDE\\Extensions\\TestPlatform\\vstest.console.exe",19                Arguments = string.Format("\"{0}\"", "3.dll"),20                {21                    { "PATH", Environment.GetEnvironmentVariable("PATH") }22                }23            }, 5000);24            testRequestSender.DiscoverTests(new[] { "3.dll" }, null, null, new TestPlatformOptions(), new DiscoveryEventHandler());25            Console.ReadLine();26        }27    }28    {29        public void HandleDiscoveryComplete(DiscoveryCompleteEventArgs discoveryCompleteEventArgs, IEnumerable<TestCase> lastChunk)30        {31            Console.WriteLine("Discovery complete");32        }33        public void HandleDiscoveredTests(IEnumerable<TestCase> discoveredTestCases)34        {35            Console.WriteLine("Discovered tests");36        }37        public void HandleRawMessage(string rawMessage)38        {39            Console.WriteLine("Raw message");40        }41        public void HandleLogMessage(TestMessageLevel level, string message)42        {43            Console.WriteLine("Log message");44        }45    }46    {47        public void HandleTestRunComplete(TestRunCompleteEventArgs testRunCompleteEventArgs, IEnumerable<AttachmentSet> lastChunk)48        {49            Console.WriteLine("Test run complete");50        }51        public void HandleTestRunStatsChange(TestOnClientProcessExit
Using AI Code Generation
1using System;2using System.Diagnostics;3using System.IO;4using System.Threading;5using System.Xml;6using Microsoft.VisualStudio.TestPlatform.CommunicationUtilities;7using Microsoft.VisualStudio.TestPlatform.ObjectModel;8using Microsoft.VisualStudio.TestPlatform.ObjectModel.Client;9using Microsoft.VisualStudio.TestPlatform.ObjectModel.Logging;10using Microsoft.VisualStudio.TestPlatform.Utilities;11{12    {13        private static TestRequestSender testRequestSender;14        private static ManualResetEvent runCompleteEvent;15        private static string testSource;16        private static string testAdapterPath;17        private static string runSettings;18        private static bool isInitialized;19        private static string testHostVersion;20        private static string testHostPath;21        private static string parentProcessId;22        private static string endpoint;23        private static string role;24        private static string environment;25        private static string framework;26        private static string runConfiguration;27        private static string testCaseFilter;28        private static string testRunDirectory;29        private static string logFileName;30        private static string logFileDirectory;31        private static string logFileFullPath;32        private static string testRunDirectoryParent;33        private static string logFileParent;34        private static string logFileParentParent;35        private static string logFileParentParentParent;36        private static string logFileParentParentParentParent;37        private static string logFileParentParentParentParentParent;38        private static string logFileParentParentParentParentParentParent;39        private static string logFileParentParentParentParentParentParentParent;40        private static string logFileParentParentParentParentParentParentParentParent;41        private static string logFileParentParentParentParentParentParentParentParentParent;OnClientProcessExit
Using AI Code Generation
1using System;2using System.Collections.Generic;3using System.Linq;4using System.Text;5using System.Threading.Tasks;6using Microsoft.VisualStudio.TestPlatform.CommunicationUtilities;7{8    {9        static void Main(string[] args)10        {11            var testRequestSender = new TestRequestSender();12            testRequestSender.InitializeCommunication();13            testRequestSender.WaitForRequestHandlerConnection(1000);14            testRequestSender.OnClientProcessExit += (sender, args) =>15            {16                Console.WriteLine("Exit Code: " + testRequestSender.GetTestProcessExitCode());17            };18            Console.ReadLine();19        }20    }21}Learn to execute automation testing from scratch with LambdaTest Learning Hub. Right from setting up the prerequisites to run your first automation test, to following best practices and diving deeper into advanced test scenarios. LambdaTest Learning Hubs compile a list of step-by-step guides to help you be proficient with different test automation frameworks i.e. Selenium, Cypress, TestNG etc.
You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.
Get 100 minutes of automation test minutes FREE!!
