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!!
