From f86dd3e7f46eb6f79ac22675d539485bfc6a5faa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20Jare=C5=A1?= Date: Wed, 26 Apr 2023 13:35:46 +0200 Subject: [PATCH 1/4] Fix playground --- .../TestPlatform.Playground/Environment.cs | 2 +- playground/TestPlatform.Playground/Program.cs | 6 +-- .../TestPlatform.Playground.csproj | 48 +++++++++---------- .../DebuggerBreakpoint.cs | 2 +- 4 files changed, 27 insertions(+), 31 deletions(-) diff --git a/playground/TestPlatform.Playground/Environment.cs b/playground/TestPlatform.Playground/Environment.cs index d5ec27d0cf..c23cd0ea3c 100644 --- a/playground/TestPlatform.Playground/Environment.cs +++ b/playground/TestPlatform.Playground/Environment.cs @@ -14,7 +14,7 @@ internal class EnvironmentVariables ["VSTEST_RUNNER_DEBUG_ATTACHVS"] = "0", ["VSTEST_HOST_DEBUG_ATTACHVS"] = "0", ["VSTEST_DATACOLLECTOR_DEBUG_ATTACHVS"] = "0", - ["VSTEST_EXPERIMENTAL_FORWARD_OUTPUT_FEATURE"] = "1" + ["VSTEST_EXPERIMENTAL_FORWARD_OUTPUT_FEATURE"] = "0" }; } diff --git a/playground/TestPlatform.Playground/Program.cs b/playground/TestPlatform.Playground/Program.cs index 2ad6c21f41..7abca6e5b6 100644 --- a/playground/TestPlatform.Playground/Program.cs +++ b/playground/TestPlatform.Playground/Program.cs @@ -88,9 +88,9 @@ static void Main() """; var sources = new[] { - Path.Combine(playground, "MSTest1", "bin", "Debug", "net472", "MSTest1.dll"), - //Path.Combine(playground, "MSTest2", "bin", "Debug", "net472", "MSTest2.dll"), - //Path.Combine(playground, "MSTest1", "bin", "Debug", "net5.0", "MSTest1.dll"), + Path.Combine(playground, "bin", "MSTest1", "Debug", "net472", "MSTest1.dll"), + // Path.Combine(playground, "bin", "MSTest2", "Debug", "net472", "MSTest2.dll"), + // Path.Combine(playground, "bin", "MSTest1", "Debug", "net5.0", "MSTest1.dll"), }; //// Console mode diff --git a/playground/TestPlatform.Playground/TestPlatform.Playground.csproj b/playground/TestPlatform.Playground/TestPlatform.Playground.csproj index fbbe3beb4c..8a96a0735a 100644 --- a/playground/TestPlatform.Playground/TestPlatform.Playground.csproj +++ b/playground/TestPlatform.Playground/TestPlatform.Playground.csproj @@ -38,44 +38,40 @@ - + - $(RepoRoot)src\ + $(RepoRoot)artifacts\ $(TargetDir)vstest.console\ - - + + - - - - - - - - - - + + + + + + + + + + - - - - - - + + + + + + - + - + diff --git a/src/Microsoft.TestPlatform.Execution.Shared/DebuggerBreakpoint.cs b/src/Microsoft.TestPlatform.Execution.Shared/DebuggerBreakpoint.cs index c6beea18e5..1bd71eb00f 100644 --- a/src/Microsoft.TestPlatform.Execution.Shared/DebuggerBreakpoint.cs +++ b/src/Microsoft.TestPlatform.Execution.Shared/DebuggerBreakpoint.cs @@ -108,7 +108,7 @@ private static bool AttachVs(Process process, int? vsPid) var parent = Path.GetDirectoryName(Assembly.GetEntryAssembly()!.Location); while (parent != null) { - var path = Path.Combine(parent, @"src\AttachVS\bin\Debug\net472\AttachVS.exe"); + var path = Path.Combine(parent, @"artifacts\bin\AttachVS\Debug\net472\AttachVS.exe"); Debug.WriteLine($"Looking for AttachVS in: {path}."); if (File.Exists(path)) { From 3434bbfcf5b5b4d99097abec3e195ce3583baa6a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20Jare=C5=A1?= Date: Wed, 26 Apr 2023 14:27:11 +0200 Subject: [PATCH 2/4] Pass only relevant sources to datacollector and other places that read them --- playground/MSTest1/MSTest1.csproj | 1 + playground/MSTest2/MSTest2.csproj | 1 + .../Client/Parallel/ParallelOperationManager.cs | 6 +++--- .../Parallel/ParallelProxyDiscoveryManager.cs | 4 ++-- .../Parallel/ParallelProxyExecutionManager.cs | 4 ++-- .../TestEngine.cs | 15 ++++++++------- 6 files changed, 17 insertions(+), 14 deletions(-) diff --git a/playground/MSTest1/MSTest1.csproj b/playground/MSTest1/MSTest1.csproj index a02ed4c683..de1f1525f6 100644 --- a/playground/MSTest1/MSTest1.csproj +++ b/playground/MSTest1/MSTest1.csproj @@ -7,6 +7,7 @@ + diff --git a/playground/MSTest2/MSTest2.csproj b/playground/MSTest2/MSTest2.csproj index a02ed4c683..de1f1525f6 100644 --- a/playground/MSTest2/MSTest2.csproj +++ b/playground/MSTest2/MSTest2.csproj @@ -7,6 +7,7 @@ + diff --git a/src/Microsoft.TestPlatform.CrossPlatEngine/Client/Parallel/ParallelOperationManager.cs b/src/Microsoft.TestPlatform.CrossPlatEngine/Client/Parallel/ParallelOperationManager.cs index ff8e1058a7..2dde2f813d 100644 --- a/src/Microsoft.TestPlatform.CrossPlatEngine/Client/Parallel/ParallelOperationManager.cs +++ b/src/Microsoft.TestPlatform.CrossPlatEngine/Client/Parallel/ParallelOperationManager.cs @@ -24,7 +24,7 @@ internal sealed class ParallelOperationManager _createNewManager; + private readonly Func _createNewManager; /// /// Default number of Processes @@ -50,7 +50,7 @@ internal sealed class ParallelOperationManagerCreates a new manager that is responsible for running a single part of the overall workload. /// A manager is typically a testhost, and the part of workload is discovering or running a single test dll. /// Determines the maximum amount of parallel managers that can be active at the same time. - public ParallelOperationManager(Func createNewManager, int parallelLevel) + public ParallelOperationManager(Func createNewManager, int parallelLevel) { _createNewManager = createNewManager; MaxParallelLevel = parallelLevel; @@ -144,7 +144,7 @@ private bool RunWorkInParallel() var workload = workloadsToAdd[i]; slot.ShouldPreStart = occupiedSlots + i + 1 > MaxParallelLevel; - var manager = _createNewManager(workload.Provider); + var manager = _createNewManager(workload.Provider, workload.Work); var eventHandler = _getEventHandler(_eventHandler, manager); slot.EventHandler = eventHandler; slot.Manager = manager; diff --git a/src/Microsoft.TestPlatform.CrossPlatEngine/Client/Parallel/ParallelProxyDiscoveryManager.cs b/src/Microsoft.TestPlatform.CrossPlatEngine/Client/Parallel/ParallelProxyDiscoveryManager.cs index bb8d1ac0f2..05c9e7184a 100644 --- a/src/Microsoft.TestPlatform.CrossPlatEngine/Client/Parallel/ParallelProxyDiscoveryManager.cs +++ b/src/Microsoft.TestPlatform.CrossPlatEngine/Client/Parallel/ParallelProxyDiscoveryManager.cs @@ -43,7 +43,7 @@ internal sealed class ParallelProxyDiscoveryManager : IParallelProxyDiscoveryMan public ParallelProxyDiscoveryManager( IRequestData requestData, - Func actualProxyManagerCreator, + Func actualProxyManagerCreator, DiscoveryDataAggregator dataAggregator, int parallelLevel, List testHostProviders) @@ -53,7 +53,7 @@ public ParallelProxyDiscoveryManager( internal ParallelProxyDiscoveryManager( IRequestData requestData, - Func actualProxyManagerCreator, + Func actualProxyManagerCreator, DiscoveryDataAggregator dataAggregator, IDataSerializer dataSerializer, int parallelLevel, diff --git a/src/Microsoft.TestPlatform.CrossPlatEngine/Client/Parallel/ParallelProxyExecutionManager.cs b/src/Microsoft.TestPlatform.CrossPlatEngine/Client/Parallel/ParallelProxyExecutionManager.cs index 792ddef3ce..52959f866b 100644 --- a/src/Microsoft.TestPlatform.CrossPlatEngine/Client/Parallel/ParallelProxyExecutionManager.cs +++ b/src/Microsoft.TestPlatform.CrossPlatEngine/Client/Parallel/ParallelProxyExecutionManager.cs @@ -64,7 +64,7 @@ internal sealed class ParallelProxyExecutionManager : IParallelProxyExecutionMan public ParallelProxyExecutionManager( IRequestData requestData, - Func actualProxyManagerCreator, + Func actualProxyManagerCreator, int parallelLevel, List testHostProviders) : this(requestData, actualProxyManagerCreator, JsonDataSerializer.Instance, parallelLevel, testHostProviders) @@ -73,7 +73,7 @@ public ParallelProxyExecutionManager( internal ParallelProxyExecutionManager( IRequestData requestData, - Func actualProxyManagerCreator, + Func actualProxyManagerCreator, IDataSerializer dataSerializer, int parallelLevel, List testHostProviders) diff --git a/src/Microsoft.TestPlatform.CrossPlatEngine/TestEngine.cs b/src/Microsoft.TestPlatform.CrossPlatEngine/TestEngine.cs index 969dd51fff..3eff1ebb99 100644 --- a/src/Microsoft.TestPlatform.CrossPlatEngine/TestEngine.cs +++ b/src/Microsoft.TestPlatform.CrossPlatEngine/TestEngine.cs @@ -118,9 +118,9 @@ public IProxyDiscoveryManager GetDiscoveryManager( // discovery manager to publish its current state. But doing so we are losing the collected state of all the // other managers. var discoveryDataAggregator = new DiscoveryDataAggregator(); - Func proxyDiscoveryManagerCreator = runtimeProviderInfo => + Func proxyDiscoveryManagerCreator = (runtimeProviderInfo, discoveryCriteria) => { - var sources = runtimeProviderInfo.SourceDetails.Select(r => r.Source!).ToList(); + var sources = discoveryCriteria.Sources.ToList(); var hostManager = _testHostProviderManager.GetTestHostManagerByRunConfiguration(runtimeProviderInfo.RunSettings, sources); hostManager?.Initialize(TestSessionMessageLogger.Instance, runtimeProviderInfo.RunSettings!); @@ -241,15 +241,16 @@ public IProxyExecutionManager GetExecutionManager( } // This creates a single non-parallel execution manager, based requestData, isDataCollectorEnabled and the - // overall testRunCriteria. The overall testRunCriteria are split to smaller pieces (e.g. each source from the overall - // testRunCriteria) so we can run them in parallel, and those are then passed to those non-parallel execution managers. + // split testRunCriteria. The overall testRunCriteria are split to smaller pieces (e.g. each source from the overall + // testRunCriteria) so we can run them in parallel. // // The function below grabs most of the parameter via closure from the local context, - // but gets the runtime provider later, because that is specific info to the source (or sources) it will be running. + // but gets the runtime provider later, as well as the discovery request, because that is specific info to the source (or sources) + // it will be running. // This creator does not get those smaller pieces of testRunCriteria, those come later when we call a method on // the non-parallel execution manager we create here. E.g. StartTests(). - Func proxyExecutionManagerCreator = runtimeProviderInfo => - CreateNonParallelExecutionManager(requestData, testRunCriteria, isDataCollectorEnabled, runtimeProviderInfo); + Func proxyExecutionManagerCreator = (runtimeProviderInfo, runCriteria) => + CreateNonParallelExecutionManager(requestData, runCriteria, isDataCollectorEnabled, runtimeProviderInfo); var executionManager = new ParallelProxyExecutionManager(requestData, proxyExecutionManagerCreator, parallelLevel, testHostProviders); From 5b03ce0882c00f988158e808781e6dbf87167ca9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20Jare=C5=A1?= Date: Thu, 25 May 2023 11:20:03 +0200 Subject: [PATCH 3/4] Revert --- playground/MSTest1/MSTest1.csproj | 1 - playground/MSTest2/MSTest2.csproj | 1 - 2 files changed, 2 deletions(-) diff --git a/playground/MSTest1/MSTest1.csproj b/playground/MSTest1/MSTest1.csproj index de1f1525f6..a02ed4c683 100644 --- a/playground/MSTest1/MSTest1.csproj +++ b/playground/MSTest1/MSTest1.csproj @@ -7,7 +7,6 @@ - diff --git a/playground/MSTest2/MSTest2.csproj b/playground/MSTest2/MSTest2.csproj index de1f1525f6..a02ed4c683 100644 --- a/playground/MSTest2/MSTest2.csproj +++ b/playground/MSTest2/MSTest2.csproj @@ -7,7 +7,6 @@ - From 7cff4f339d0239e421c65fc016a9e2c3c731cced Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20Jare=C5=A1?= Date: Thu, 25 May 2023 13:42:23 +0200 Subject: [PATCH 4/4] Fix tests --- .../Parallel/ParallelOperationManagerTests.cs | 10 +++++----- .../Parallel/ParallelProxyDiscoveryManagerTests.cs | 14 +++++++------- .../Parallel/ParallelProxyExecutionManagerTests.cs | 14 +++++++------- 3 files changed, 19 insertions(+), 19 deletions(-) diff --git a/test/Microsoft.TestPlatform.CrossPlatEngine.UnitTests/Client/Parallel/ParallelOperationManagerTests.cs b/test/Microsoft.TestPlatform.CrossPlatEngine.UnitTests/Client/Parallel/ParallelOperationManagerTests.cs index cf65b349ee..42cd47010f 100644 --- a/test/Microsoft.TestPlatform.CrossPlatEngine.UnitTests/Client/Parallel/ParallelOperationManagerTests.cs +++ b/test/Microsoft.TestPlatform.CrossPlatEngine.UnitTests/Client/Parallel/ParallelOperationManagerTests.cs @@ -20,7 +20,7 @@ public class ParallelOperationManagerTests public void OperationManagerShouldRunOnlyMaximumParallelLevelOfWorkInParallelEvenWhenThereAreMoreWorkloads() { // Arrange - Func createNewManager = _ => new SampleManager(); + Func createNewManager = (_, _2) => new SampleManager(); var maxParallelLevel = 3; var parallelOperationManager = new ParallelOperationManager(createNewManager, maxParallelLevel); @@ -72,7 +72,7 @@ public void OperationManagerShouldRunOnlyMaximumParallelLevelOfWorkInParallelEve public void OperationManagerShouldCreateOnlyAsManyParallelWorkersAsThereAreWorkloadsWhenTheAmountOfWorkloadsIsSmallerThanMaxParallelLevel() { // Arrange - Func createNewManager = _ => new SampleManager(); + Func createNewManager = (_, _2) => new SampleManager(); var maxParallelLevel = 10; var parallelOperationManager = new ParallelOperationManager(createNewManager, maxParallelLevel); @@ -108,7 +108,7 @@ public void OperationManagerShouldCreateOnlyAsManyParallelWorkersAsThereAreWorkl public void OperationManagerShouldCreateAsManyMaxParallelLevel() { // Arrange - Func createNewManager = _ => new SampleManager(); + Func createNewManager = (_, _2) => new SampleManager(); var maxParallelLevel = 10; var parallelOperationManager = new ParallelOperationManager(createNewManager, maxParallelLevel); @@ -148,7 +148,7 @@ public void OperationManagerShouldCreateAsManyMaxParallelLevel() public void OperationManagerMovesToTheNextWorkloadOnlyWhenRunNextWorkIsCalled() { // Arrange - Func createNewManager = _ => new SampleManager(); + Func createNewManager = (_, _2) => new SampleManager(); var maxParallelLevel = 2; var parallelOperationManager = new ParallelOperationManager(createNewManager, maxParallelLevel); @@ -195,7 +195,7 @@ public void OperationManagerRunsAnOperationOnAllActiveManagersWhenDoActionOnAllM // Arrange var createdManagers = new List(); // Store the managers we created so we can inspect them later and see if Abort was called on them. - Func createNewManager = _ => + Func createNewManager = (_, _2) => { var manager = new SampleManager(); createdManagers.Add(manager); diff --git a/test/Microsoft.TestPlatform.CrossPlatEngine.UnitTests/Client/Parallel/ParallelProxyDiscoveryManagerTests.cs b/test/Microsoft.TestPlatform.CrossPlatEngine.UnitTests/Client/Parallel/ParallelProxyDiscoveryManagerTests.cs index 273110474b..2243d3ea66 100644 --- a/test/Microsoft.TestPlatform.CrossPlatEngine.UnitTests/Client/Parallel/ParallelProxyDiscoveryManagerTests.cs +++ b/test/Microsoft.TestPlatform.CrossPlatEngine.UnitTests/Client/Parallel/ParallelProxyDiscoveryManagerTests.cs @@ -28,7 +28,7 @@ public class ParallelProxyDiscoveryManagerTests private const int Timeout3Seconds = 3 * 1000; private readonly Queue> _preCreatedMockManagers; private readonly List> _usedMockManagers; - private readonly Func _createMockManager; + private readonly Func _createMockManager; private readonly Mock _mockEventHandler; private readonly List _sources = new() { "1.dll", "2.dll" }; private readonly DiscoveryCriteria _discoveryCriteriaWith2Sources; @@ -55,7 +55,7 @@ public ParallelProxyDiscoveryManagerTests() new Mock(), }); _usedMockManagers = new List>(); - _createMockManager = _ => + _createMockManager = (_, _2) => { // We create the manager at the last possible // moment now, not when we create the parallel proxy manager class @@ -163,7 +163,7 @@ public void HandlePartialDiscoveryCompleteShouldReturnTrueIfDiscoveryWasAbortedA { var discoveryManagerMock = new Mock(); _preCreatedMockManagers.Enqueue(discoveryManagerMock); - var parallelDiscoveryManager = SetupDiscoveryManager(_ => discoveryManagerMock.Object, 1, true); + var parallelDiscoveryManager = SetupDiscoveryManager((_, _2) => discoveryManagerMock.Object, 1, true); var proxyDiscovermanager = new ProxyDiscoveryManager(_mockRequestData.Object, new Mock().Object, new Mock().Object); parallelDiscoveryManager.DiscoverTests(_discoveryCriteriaWith2Sources, _mockEventHandler.Object); @@ -190,7 +190,7 @@ public void HandlePartialDiscoveryCompleteShouldReturnTrueIfDiscoveryWasAbortedA { var discoveryManagerMock = new Mock(); _preCreatedMockManagers.Enqueue(discoveryManagerMock); - var parallelDiscoveryManager = SetupDiscoveryManager(_ => discoveryManagerMock.Object, 1, true); + var parallelDiscoveryManager = SetupDiscoveryManager((_, _2) => discoveryManagerMock.Object, 1, true); var proxyDiscovermanager = new ProxyDiscoveryManager(_mockRequestData.Object, new Mock().Object, new Mock().Object); parallelDiscoveryManager.DiscoverTests(_discoveryCriteriaWith2Sources, _mockEventHandler.Object); @@ -206,7 +206,7 @@ public void DiscoveryTestsShouldStopDiscoveryIfAbortionWasRequested() // Since the hosts are aborted, total aggregated tests sent across will be -1 var discoveryManagerMock = new Mock(); _preCreatedMockManagers.Enqueue(discoveryManagerMock); - var parallelDiscoveryManager = SetupDiscoveryManager(_ => discoveryManagerMock.Object, 1, true); + var parallelDiscoveryManager = SetupDiscoveryManager((_, _2) => discoveryManagerMock.Object, 1, true); Task.Run(() => { @@ -224,7 +224,7 @@ public void DiscoveryTestsShouldStopDiscoveryIfAbortionWithEventHandlerWasReques // Since the hosts are aborted, total aggregated tests sent across will be -1 var discoveryManagerMock = new Mock(); _preCreatedMockManagers.Enqueue(discoveryManagerMock); - var parallelDiscoveryManager = SetupDiscoveryManager(_ => discoveryManagerMock.Object, 1, true); + var parallelDiscoveryManager = SetupDiscoveryManager((_, _2) => discoveryManagerMock.Object, 1, true); Task.Run(() => { @@ -331,7 +331,7 @@ public void DiscoveryTestsWithCompletionMarksAllSourcesAsFullyDiscovered() Assert.AreEqual(0, _dataAggregator.GetSourcesWithStatus(DiscoveryStatus.NotDiscovered).Count); } - private ParallelProxyDiscoveryManager SetupDiscoveryManager(Func getProxyManager, int parallelLevel, bool abortDiscovery) + private ParallelProxyDiscoveryManager SetupDiscoveryManager(Func getProxyManager, int parallelLevel, bool abortDiscovery) { var parallelDiscoveryManager = new ParallelProxyDiscoveryManager(_mockRequestData.Object, getProxyManager, dataAggregator: new(), parallelLevel, _runtimeProviders); SetupDiscoveryTests(_processedSources, abortDiscovery); diff --git a/test/Microsoft.TestPlatform.CrossPlatEngine.UnitTests/Client/Parallel/ParallelProxyExecutionManagerTests.cs b/test/Microsoft.TestPlatform.CrossPlatEngine.UnitTests/Client/Parallel/ParallelProxyExecutionManagerTests.cs index 86806f8158..5e0d939f6d 100644 --- a/test/Microsoft.TestPlatform.CrossPlatEngine.UnitTests/Client/Parallel/ParallelProxyExecutionManagerTests.cs +++ b/test/Microsoft.TestPlatform.CrossPlatEngine.UnitTests/Client/Parallel/ParallelProxyExecutionManagerTests.cs @@ -31,7 +31,7 @@ public class ParallelProxyExecutionManagerTests private static readonly int Timeout3Seconds = 3 * 1000; // In milliseconds private readonly List> _usedMockManagers; - private readonly Func _createMockManager; + private readonly Func _createMockManager; private readonly Mock _mockEventHandler; private readonly List _sources; @@ -59,7 +59,7 @@ public ParallelProxyExecutionManagerTests() new Mock(), }); _usedMockManagers = new List>(); - _createMockManager = _ => + _createMockManager = (_, _2) => { _createMockManagerCalled++; var manager = _preCreatedMockManagers.Dequeue(); @@ -245,7 +245,7 @@ public void StartTestRunWithTestsShouldNotSendCompleteUntilAllTestsAreProcessed( public void StartTestRunShouldNotProcessAllSourcesOnExecutionCancelsForAnySource() { var executionManagerMock = new Mock(); - var parallelExecutionManager = new ParallelProxyExecutionManager(_mockRequestData.Object, _ => executionManagerMock.Object, 1, _runtimeProviders); + var parallelExecutionManager = new ParallelProxyExecutionManager(_mockRequestData.Object, (_, _2) => executionManagerMock.Object, 1, _runtimeProviders); _preCreatedMockManagers.Enqueue(executionManagerMock); SetupMockManagers(_processedSources, isCanceled: true, isAborted: false); SetupHandleTestRunComplete(_executionCompleted); @@ -260,7 +260,7 @@ public void StartTestRunShouldNotProcessAllSourcesOnExecutionCancelsForAnySource public void StartTestRunShouldNotProcessAllSourcesOnExecutionAborted() { var executionManagerMock = new Mock(); - var parallelExecutionManager = new ParallelProxyExecutionManager(_mockRequestData.Object, _ => executionManagerMock.Object, 1, _runtimeProviders); + var parallelExecutionManager = new ParallelProxyExecutionManager(_mockRequestData.Object, (_, _2) => executionManagerMock.Object, 1, _runtimeProviders); _preCreatedMockManagers.Enqueue(executionManagerMock); SetupMockManagers(_processedSources, isCanceled: false, isAborted: false); SetupHandleTestRunComplete(_executionCompleted); @@ -276,7 +276,7 @@ public void StartTestRunShouldNotProcessAllSourcesOnExecutionAborted() public void StartTestRunShouldProcessAllSourcesOnExecutionAbortsForAnySource() { var executionManagerMock = new Mock(); - var parallelExecutionManager = new ParallelProxyExecutionManager(_mockRequestData.Object, _ => executionManagerMock.Object, 1, _runtimeProviders); + var parallelExecutionManager = new ParallelProxyExecutionManager(_mockRequestData.Object, (_, _2) => executionManagerMock.Object, 1, _runtimeProviders); _preCreatedMockManagers.Enqueue(executionManagerMock); SetupMockManagers(_processedSources, isCanceled: false, isAborted: true); SetupHandleTestRunComplete(_executionCompleted); @@ -432,12 +432,12 @@ public void StartTestRunShouldAggregateRunData() AssertMissingAndDuplicateSources(_processedSources); } - private ParallelProxyExecutionManager SetupExecutionManager(Func proxyManagerFunc, int parallelLevel) + private ParallelProxyExecutionManager SetupExecutionManager(Func proxyManagerFunc, int parallelLevel) { return SetupExecutionManager(proxyManagerFunc, parallelLevel, false); } - private ParallelProxyExecutionManager SetupExecutionManager(Func proxyManagerFunc, int parallelLevel, bool setupTestCases) + private ParallelProxyExecutionManager SetupExecutionManager(Func proxyManagerFunc, int parallelLevel, bool setupTestCases) { var parallelExecutionManager = new ParallelProxyExecutionManager(_mockRequestData.Object, proxyManagerFunc, parallelLevel, _runtimeProviders);