Best Vstest code snippet using Microsoft.VisualStudio.TestPlatform.CrossPlatEngine.Client.ProxyExecutionManager
ProxyExecutionManagerWithDataCollectionTests.cs
Source:ProxyExecutionManagerWithDataCollectionTests.cs
...17 using Microsoft.VisualStudio.TestPlatform.PlatformAbstractions.Interfaces;18 using Microsoft.VisualStudio.TestTools.UnitTesting;19 using Moq;20 [TestClass]21 public class ProxyExecutionManagerWithDataCollectionTests22 {23 private ProxyExecutionManager testExecutionManager;24 private Mock<ITestRuntimeProvider> mockTestHostManager;25 private Mock<ITestRequestSender> mockRequestSender;26 private Mock<IProxyDataCollectionManager> mockDataCollectionManager;27 private Mock<IProcessHelper> mockProcessHelper;28 private ProxyExecutionManagerWithDataCollection proxyExecutionManager;29 private Mock<IDataSerializer> mockDataSerializer;30 private Mock<IRequestData> mockRequestData;31 private Mock<IMetricsCollection> mockMetricsCollection;32 /// <summary>33 /// The client connection timeout in milliseconds for unit tests.34 /// </summary>35 private int testableClientConnectionTimeout = 400;36 [TestInitialize]37 public void TestInit()38 {39 this.mockTestHostManager = new Mock<ITestRuntimeProvider>();40 this.mockRequestSender = new Mock<ITestRequestSender>();41 this.mockDataSerializer = new Mock<IDataSerializer>();42 this.mockRequestData = new Mock<IRequestData>();43 this.mockMetricsCollection = new Mock<IMetricsCollection>();44 this.mockRequestData.Setup(rd => rd.MetricsCollection).Returns(this.mockMetricsCollection.Object);45 this.testExecutionManager = new ProxyExecutionManager(this.mockRequestData.Object, this.mockRequestSender.Object, this.mockTestHostManager.Object, this.mockDataSerializer.Object, this.testableClientConnectionTimeout);46 this.mockDataCollectionManager = new Mock<IProxyDataCollectionManager>();47 this.mockProcessHelper = new Mock<IProcessHelper>();48 this.proxyExecutionManager = new ProxyExecutionManagerWithDataCollection(this.mockRequestData.Object, this.mockRequestSender.Object, this.mockTestHostManager.Object, this.mockDataCollectionManager.Object);49 }50 [TestMethod]51 public void InitializeShouldInitializeDataCollectionProcessIfDataCollectionIsEnabled()52 {53 this.proxyExecutionManager.Initialize();54 mockDataCollectionManager.Verify(dc => dc.BeforeTestRunStart(It.IsAny<bool>(), It.IsAny<bool>(), It.IsAny<ITestMessageEventHandler>()), Times.Once);55 }56 [TestMethod]57 public void InitializeShouldThrowExceptionIfThrownByDataCollectionManager()58 {59 this.mockDataCollectionManager.Setup(x => x.Initialize()).Throws<Exception>();60 Assert.ThrowsException<Exception>(() =>61 {62 this.proxyExecutionManager.Initialize();63 });64 }65 [TestMethod]66 public void InitializeShouldCallAfterTestRunIfExceptionIsThrownWhileCreatingDataCollectionProcess()67 {68 mockDataCollectionManager.Setup(dc => dc.BeforeTestRunStart(It.IsAny<bool>(), It.IsAny<bool>(), It.IsAny<ITestMessageEventHandler>())).Throws(new Exception("MyException"));69 Assert.ThrowsException<Exception>(() =>70 {71 this.proxyExecutionManager.Initialize();72 });73 mockDataCollectionManager.Verify(dc => dc.BeforeTestRunStart(It.IsAny<bool>(), It.IsAny<bool>(), It.IsAny<ITestMessageEventHandler>()), Times.Once);74 mockDataCollectionManager.Verify(dc => dc.AfterTestRunEnd(It.IsAny<bool>(), It.IsAny<ITestMessageEventHandler>()), Times.Once);75 }76 [TestMethod]77 public void InitializeShouldSaveExceptionMessagesIfThrownByDataCollectionProcess()78 {79 var mockRequestSender = new Mock<IDataCollectionRequestSender>();80 mockRequestSender.Setup(x => x.SendBeforeTestRunStartAndGetResult(It.IsAny<string>(), It.IsAny<ITestMessageEventHandler>())).Throws(new Exception("MyException"));81 var mockDataCollectionLauncher = new Mock<IDataCollectionLauncher>();82 var proxyDataCollectonManager = new ProxyDataCollectionManager(this.mockRequestData.Object, string.Empty, mockRequestSender.Object, this.mockProcessHelper.Object, mockDataCollectionLauncher.Object);83 var proxyExecutionManager = new ProxyExecutionManagerWithDataCollection(this.mockRequestData.Object, this.mockRequestSender.Object, this.mockTestHostManager.Object, proxyDataCollectonManager);84 proxyExecutionManager.Initialize();85 Assert.IsNotNull(proxyExecutionManager.DataCollectionRunEventsHandler.Messages);86 Assert.AreEqual(TestMessageLevel.Error, proxyExecutionManager.DataCollectionRunEventsHandler.Messages[0].Item1);87 Assert.AreEqual("MyException", proxyExecutionManager.DataCollectionRunEventsHandler.Messages[0].Item2);88 }89 [TestMethod]90 public void CancelShouldInvokeAfterTestCaseEnd()91 {92 this.proxyExecutionManager.Cancel();93 this.mockDataCollectionManager.Verify(x => x.AfterTestRunEnd(true, It.IsAny<ITestMessageEventHandler>()), Times.Once);94 }95 [TestMethod]96 public void CancelShouldThrowExceptionIfThrownByProxyDataCollectionManager()97 {98 this.mockDataCollectionManager.Setup(x => x.AfterTestRunEnd(true, It.IsAny<ITestMessageEventHandler>())).Throws<Exception>();99 Assert.ThrowsException<Exception>(() =>100 {101 this.proxyExecutionManager.Cancel();102 });103 }104 [TestMethod]105 public void UpdateTestProcessStartInfoShouldUpdateDataCollectionPortArg()106 {107 this.mockDataCollectionManager.Setup(x => x.BeforeTestRunStart(It.IsAny<bool>(), It.IsAny<bool>(), It.IsAny<ITestMessageEventHandler>())).Returns(DataCollectionParameters.CreateDefaultParameterInstance());108 var testProcessStartInfo = new TestProcessStartInfo();109 testProcessStartInfo.Arguments = string.Empty;110 var proxyExecutionManager = new TestableProxyExecutionManagerWithDataCollection(this.mockRequestSender.Object, this.mockTestHostManager.Object, this.mockDataCollectionManager.Object);111 proxyExecutionManager.UpdateTestProcessStartInfoWrapper(testProcessStartInfo);112 Assert.IsTrue(testProcessStartInfo.Arguments.Contains("--datacollectionport 0"));113 }114 [TestMethod]115 public void UpdateTestProcessStartInfoShouldUpdateTelemetryOptedInArgTrueIfTelemetryOptedIn()116 {117 var mockRequestData = new Mock<IRequestData>();118 this.mockRequestData.Setup(rd => rd.IsTelemetryOptedIn).Returns(true);119 this.mockDataCollectionManager.Setup(x => x.BeforeTestRunStart(It.IsAny<bool>(), It.IsAny<bool>(), It.IsAny<ITestMessageEventHandler>())).Returns(DataCollectionParameters.CreateDefaultParameterInstance());120 var testProcessStartInfo = new TestProcessStartInfo();121 testProcessStartInfo.Arguments = string.Empty;122 var proxyExecutionManager = new TestableProxyExecutionManagerWithDataCollection(this.mockRequestData.Object, this.mockRequestSender.Object, this.mockTestHostManager.Object, this.mockDataCollectionManager.Object);123 // Act.124 proxyExecutionManager.UpdateTestProcessStartInfoWrapper(testProcessStartInfo);125 // Verify.126 Assert.IsTrue(testProcessStartInfo.Arguments.Contains("--telemetryoptedin true"));127 }128 [TestMethod]129 public void UpdateTestProcessStartInfoShouldUpdateTelemetryOptedInArgFalseIfTelemetryOptedOut()130 {131 var mockRequestData = new Mock<IRequestData>();132 this.mockRequestData.Setup(rd => rd.IsTelemetryOptedIn).Returns(false);133 this.mockDataCollectionManager.Setup(x => x.BeforeTestRunStart(It.IsAny<bool>(), It.IsAny<bool>(), It.IsAny<ITestMessageEventHandler>())).Returns(DataCollectionParameters.CreateDefaultParameterInstance());134 var testProcessStartInfo = new TestProcessStartInfo();135 testProcessStartInfo.Arguments = string.Empty;136 var proxyExecutionManager = new TestableProxyExecutionManagerWithDataCollection(this.mockRequestData.Object, this.mockRequestSender.Object, this.mockTestHostManager.Object, this.mockDataCollectionManager.Object);137 // Act.138 proxyExecutionManager.UpdateTestProcessStartInfoWrapper(testProcessStartInfo);139 // Verify.140 Assert.IsTrue(testProcessStartInfo.Arguments.Contains("--telemetryoptedin false"));141 }142 }143 internal class TestableProxyExecutionManagerWithDataCollection : ProxyExecutionManagerWithDataCollection144 {145 public TestableProxyExecutionManagerWithDataCollection(ITestRequestSender testRequestSender, ITestRuntimeProvider testHostManager, IProxyDataCollectionManager proxyDataCollectionManager) : base(new RequestData{MetricsCollection = new NoOpMetricsCollection()}, testRequestSender, testHostManager, proxyDataCollectionManager)146 {147 }148 public TestableProxyExecutionManagerWithDataCollection(IRequestData requestData, ITestRequestSender testRequestSender, ITestRuntimeProvider testHostManager, IProxyDataCollectionManager proxyDataCollectionManager) : base(requestData, testRequestSender, testHostManager, proxyDataCollectionManager)149 {150 }151 public TestProcessStartInfo UpdateTestProcessStartInfoWrapper(TestProcessStartInfo testProcessStartInfo)152 {153 return this.UpdateTestProcessStartInfo(testProcessStartInfo);154 }155 protected override TestProcessStartInfo UpdateTestProcessStartInfo(TestProcessStartInfo testProcessStartInfo)156 {157 return base.UpdateTestProcessStartInfo(testProcessStartInfo);158 }159 }160}...
ParallelDataCollectionEventsHandler.cs
Source:ParallelDataCollectionEventsHandler.cs
...16 private readonly ParallelRunDataAggregator runDataAggregator;17 private readonly ITestRunAttachmentsProcessingManager attachmentsProcessingManager;18 private readonly CancellationToken cancellationToken;19 public ParallelDataCollectionEventsHandler(IRequestData requestData,20 IProxyExecutionManager proxyExecutionManager,21 ITestRunEventsHandler actualRunEventsHandler,22 IParallelProxyExecutionManager parallelProxyExecutionManager,23 ParallelRunDataAggregator runDataAggregator,24 ITestRunAttachmentsProcessingManager attachmentsProcessingManager,25 CancellationToken cancellationToken) :26 this(requestData, proxyExecutionManager, actualRunEventsHandler, parallelProxyExecutionManager, runDataAggregator, JsonDataSerializer.Instance)27 {28 this.attachmentsProcessingManager = attachmentsProcessingManager;29 this.cancellationToken = cancellationToken;30 }31 internal ParallelDataCollectionEventsHandler(IRequestData requestData,32 IProxyExecutionManager proxyExecutionManager,33 ITestRunEventsHandler actualRunEventsHandler,34 IParallelProxyExecutionManager parallelProxyExecutionManager,35 ParallelRunDataAggregator runDataAggregator,36 IDataSerializer dataSerializer) :37 base(requestData, proxyExecutionManager, actualRunEventsHandler, parallelProxyExecutionManager, runDataAggregator, dataSerializer)38 {39 this.runDataAggregator = runDataAggregator;40 }41 /// <summary>42 /// Handles the Run Complete event from a parallel proxy manager43 /// </summary>44 public override void HandleTestRunComplete(45 TestRunCompleteEventArgs testRunCompleteArgs,46 TestRunChangedEventArgs lastChunkArgs,47 ICollection<AttachmentSet> runContextAttachments,48 ICollection<string> executorUris)49 {50 var parallelRunComplete = HandleSingleTestRunComplete(testRunCompleteArgs, lastChunkArgs, runContextAttachments, executorUris);51 if (parallelRunComplete)...
ProxyExecutionManager
Using AI Code Generation
1using Microsoft.VisualStudio.TestPlatform.CrossPlatEngine.Client;2using Microsoft.VisualStudio.TestPlatform.ObjectModel;3using Microsoft.VisualStudio.TestPlatform.ObjectModel.Client;4using Microsoft.VisualStudio.TestPlatform.ObjectModel.Engine;5using Microsoft.VisualStudio.TestPlatform.ObjectModel.Logging;6using System;7using System.Collections.Generic;8{9 {10 static void Main(string[] args)11 {12 var request = new TestRunRequest();13 request.Source = "C:\\test\\bin\\Debug\\test.dll";14 request.RunSettings = @"<RunSettings><RunConfiguration><TargetPlatform>x64</TargetPlatform></RunConfiguration></RunSettings>";15 request.TestPlatformVersion = "16.0";16 request.TestAdapterPath = "C:\\test\\bin\\Debug";17 request.TestHostPath = "C:\\test\\bin\\Debug";18 request.TestHostVersion = "16.0";19 request.DiscoverySettings = new DiscoverySettings();20 request.DiscoverySettings.DiscoverTestsInParallel = true;21 request.DiscoverySettings.DiscoveryMode = DiscoveryMode.SpecificTests;22 request.DiscoverySettings.SpecificTests = new List<string>() { "test1", "test2" };23 request.ExecutionSettings = new ExecutionSettings();24 request.ExecutionSettings.DesignMode = true;25 request.ExecutionSettings.ExecuteTestsInParallel = true;26 request.ExecutionSettings.RunStatsCollectors = true;27 request.ExecutionSettings.RunInIsolation = true;28 request.ExecutionSettings.KeepAlive = true;29 request.ExecutionSettings.LauncherPath = "C:\\test\\bin\\Debug\\test.exe";30 request.ExecutionSettings.LauncherArgs = "/arg1 /arg2";31 request.ExecutionSettings.LauncherWorkingDirectory = "C:\\test\\bin\\Debug";32 request.ExecutionSettings.ProcessHelper = new ProcessHelper();33 request.ExecutionSettings.RunSettings = new RunSettings();34 request.ExecutionSettings.RunSettings.IsDataCollectionEnabled = true;35 request.ExecutionSettings.RunSettings.IsDiagnosticsEnabled = true;36 request.ExecutionSettings.RunSettings.IsTelemetryOptedIn = true;37 request.ExecutionSettings.RunSettings.IsCollectionRunSettingsPresent = true;38 request.ExecutionSettings.RunSettings.IsRunSettingsPresent = true;39 request.ExecutionSettings.RunSettings.IsRunSettingsOverriddenByCollectionRunSettings = true;40 request.ExecutionSettings.RunSettings.IsRunConfigurationPresent = true;41 request.ExecutionSettings.RunSettings.IsRunConfigurationOverriddenByRunSettings = true;
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!!