diff --git a/src/Microsoft.TestPlatform.Common/Interfaces/Engine/TesthostProtocol/IMultiTestRunsFinalizationManager.cs b/src/Microsoft.TestPlatform.Common/Interfaces/Engine/TesthostProtocol/IMultiTestRunsFinalizationManager.cs
index b67250e839..e21350c231 100644
--- a/src/Microsoft.TestPlatform.Common/Interfaces/Engine/TesthostProtocol/IMultiTestRunsFinalizationManager.cs
+++ b/src/Microsoft.TestPlatform.Common/Interfaces/Engine/TesthostProtocol/IMultiTestRunsFinalizationManager.cs
@@ -1,24 +1,21 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+using Microsoft.VisualStudio.TestPlatform.ObjectModel.Client;
+using System.Collections.Generic;
+
namespace Microsoft.VisualStudio.TestPlatform.ObjectModel.Engine.TesthostProtocol
{
- using Microsoft.VisualStudio.TestPlatform.ObjectModel.Client;
- using System.Collections.Generic;
-
- namespace Microsoft.VisualStudio.TestPlatform.Common.Interfaces.Engine.TesthostProtocol
+ ///
+ /// Orchestrates multi test runs finalization operations for the engine communicating with the test host process.
+ ///
+ public interface IMultiTestRunsFinalizationManager
{
///
- /// Orchestrates multi test runs finalization operations for the engine communicating with the test host process.
+ /// Finalizes multi test runs
///
- public interface IMultiTestRunsFinalizationManager
- {
- ///
- /// Discovers tests
- ///
- /// Settings, parameters for the discovery request
- /// EventHandler for handling discovery events from Engine
- void FinalizeMultiTestRuns(IEnumerable attachments, IMultiTestRunsFinalizationEventsHandler eventHandler);
- }
+ /// Attachments
+ /// EventHandler for handling multi test runs finalization events from Engine
+ void FinalizeMultiTestRuns(ICollection attachments, IMultiTestRunsFinalizationEventsHandler eventHandler);
}
}
diff --git a/src/Microsoft.TestPlatform.CommunicationUtilities/EventHandlers/MultiTestRunsFinalizationEventsHandler.cs b/src/Microsoft.TestPlatform.CommunicationUtilities/EventHandlers/MultiTestRunsFinalizationEventsHandler.cs
new file mode 100644
index 0000000000..bc4ba4b350
--- /dev/null
+++ b/src/Microsoft.TestPlatform.CommunicationUtilities/EventHandlers/MultiTestRunsFinalizationEventsHandler.cs
@@ -0,0 +1,74 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+
+namespace Microsoft.VisualStudio.TestPlatform.CommunicationUtilities.EventHandlers
+{
+ using System.Collections.Generic;
+
+ using Microsoft.VisualStudio.TestPlatform.CommunicationUtilities.Interfaces;
+ using Microsoft.VisualStudio.TestPlatform.ObjectModel;
+ using Microsoft.VisualStudio.TestPlatform.ObjectModel.Client;
+ using Microsoft.VisualStudio.TestPlatform.ObjectModel.Logging;
+
+ ///
+ /// The multi test finalization event handler.
+ ///
+ public class MultiTestRunsFinalizationEventsHandler : IMultiTestRunsFinalizationEventsHandler
+ {
+ private ITestRequestHandler requestHandler;
+
+ ///
+ /// Initializes a new instance of the class.
+ ///
+ /// The Request Handler.
+ public MultiTestRunsFinalizationEventsHandler(ITestRequestHandler requestHandler)
+ {
+ this.requestHandler = requestHandler;
+ }
+
+ ///
+ /// The handle discovery message.
+ ///
+ /// Logging level.
+ /// Logging message.
+ public void HandleLogMessage(TestMessageLevel level, string message)
+ {
+ switch ((TestMessageLevel)level)
+ {
+ case TestMessageLevel.Informational:
+ EqtTrace.Info(message);
+ break;
+
+ case TestMessageLevel.Warning:
+ EqtTrace.Warning(message);
+ break;
+
+ case TestMessageLevel.Error:
+ EqtTrace.Error(message);
+ break;
+
+ default:
+ EqtTrace.Info(message);
+ break;
+ }
+
+ this.requestHandler.SendLog(level, message);
+ }
+
+ public void HandleMultiTestRunsFinalizationComplete(ICollection attachments)
+ {
+ if (EqtTrace.IsInfoEnabled)
+ {
+ EqtTrace.Info("Multi test runs finalization completed.");
+ }
+
+ this.requestHandler.MultiTestRunsFinalizationComplete(attachments);
+ }
+
+ public void HandleRawMessage(string rawMessage)
+ {
+ // No-Op
+ // TestHost at this point has no functionality where it requires rawmessage
+ }
+ }
+}
diff --git a/src/Microsoft.TestPlatform.CommunicationUtilities/Interfaces/ITestRequestHandler.cs b/src/Microsoft.TestPlatform.CommunicationUtilities/Interfaces/ITestRequestHandler.cs
index 8908a72fc7..a83897979d 100644
--- a/src/Microsoft.TestPlatform.CommunicationUtilities/Interfaces/ITestRequestHandler.cs
+++ b/src/Microsoft.TestPlatform.CommunicationUtilities/Interfaces/ITestRequestHandler.cs
@@ -79,6 +79,12 @@ public interface ITestRequestHandler : IDisposable
/// The last Chunk.
void DiscoveryComplete(DiscoveryCompleteEventArgs discoveryCompleteEventArgs, IEnumerable lastChunk);
+ ///
+ /// The multi test runs finalization complete handler
+ ///
+ /// Attachments
+ void MultiTestRunsFinalizationComplete(ICollection attachments);
+
///
/// Launches a process with a given process info under debugger
/// Adapter get to call into this to launch any additional processes under debugger
diff --git a/src/Microsoft.TestPlatform.CommunicationUtilities/Messages/MessageType.cs b/src/Microsoft.TestPlatform.CommunicationUtilities/Messages/MessageType.cs
index d4564a3c45..a5af0cd46a 100644
--- a/src/Microsoft.TestPlatform.CommunicationUtilities/Messages/MessageType.cs
+++ b/src/Microsoft.TestPlatform.CommunicationUtilities/Messages/MessageType.cs
@@ -131,7 +131,7 @@ public static class MessageType
///
/// Multi test runs finalization callback
///
- public const string MultiTestRunsFinalizationCallback = "TestExecution.MultiTestRunsFinalizationCallback";
+ public const string MultiTestRunsFinalizationComplete = "TestExecution.MultiTestRunsFinalizationComplete";
///
/// Extensions Initialization
diff --git a/src/Microsoft.TestPlatform.CrossPlatEngine/DataCollection/MultiTestRunsDataCollectorAttachmentsHandler.cs b/src/Microsoft.TestPlatform.CrossPlatEngine/DataCollection/MultiTestRunsDataCollectorAttachmentsHandler.cs
new file mode 100644
index 0000000000..cad95055ff
--- /dev/null
+++ b/src/Microsoft.TestPlatform.CrossPlatEngine/DataCollection/MultiTestRunsDataCollectorAttachmentsHandler.cs
@@ -0,0 +1,42 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+
+using Microsoft.VisualStudio.TestPlatform.ObjectModel;
+using Microsoft.VisualStudio.TestPlatform.ObjectModel.DataCollection;
+using System;
+using System.Collections.Generic;
+using System.Collections.ObjectModel;
+using System.Linq;
+
+namespace Microsoft.VisualStudio.TestPlatform.CrossPlatEngine.DataCollection
+{
+ public class MultiTestRunsDataCollectorAttachmentsHandler
+ {
+ private readonly IDataCollectorAttachments dataCollectorAttachmentsHandler;
+
+ public MultiTestRunsDataCollectorAttachmentsHandler(IDataCollectorAttachments dataCollectorAttachmentsHandler)
+ {
+ this.dataCollectorAttachmentsHandler = dataCollectorAttachmentsHandler;
+ }
+
+ public void HandleAttachements(ICollection attachments)
+ {
+ Uri attachementUri = dataCollectorAttachmentsHandler.GetExtensionUri();
+ if (attachementUri != null)
+ {
+ var coverageAttachments = attachments.Where(dataCollectionAttachment => attachementUri.Equals(dataCollectionAttachment.Uri)).ToArray();
+
+ foreach (var coverageAttachment in coverageAttachments)
+ {
+ attachments.Remove(coverageAttachment);
+ }
+
+ ICollection mergedAttachments = dataCollectorAttachmentsHandler.HandleDataCollectionAttachmentSets(new Collection(coverageAttachments));
+ foreach (var attachment in mergedAttachments)
+ {
+ attachments.Add(attachment);
+ }
+ }
+ }
+ }
+}
diff --git a/src/Microsoft.TestPlatform.CrossPlatEngine/DataCollection/ParallelDataCollectionEventsHandler.cs b/src/Microsoft.TestPlatform.CrossPlatEngine/DataCollection/ParallelDataCollectionEventsHandler.cs
index 0f5432cd78..67d9d2df70 100644
--- a/src/Microsoft.TestPlatform.CrossPlatEngine/DataCollection/ParallelDataCollectionEventsHandler.cs
+++ b/src/Microsoft.TestPlatform.CrossPlatEngine/DataCollection/ParallelDataCollectionEventsHandler.cs
@@ -3,10 +3,7 @@
namespace Microsoft.VisualStudio.TestPlatform.CrossPlatEngine.DataCollection
{
- using System;
using System.Collections.Generic;
- using System.Collections.ObjectModel;
- using System.Linq;
using Microsoft.VisualStudio.TestPlatform.CommunicationUtilities;
using Microsoft.VisualStudio.TestPlatform.CommunicationUtilities.Interfaces;
@@ -19,6 +16,7 @@ namespace Microsoft.VisualStudio.TestPlatform.CrossPlatEngine.DataCollection
internal class ParallelDataCollectionEventsHandler : ParallelRunEventsHandler
{
private readonly ParallelRunDataAggregator runDataAggregator;
+ private readonly MultiTestRunsDataCollectorAttachmentsHandler attachmentsHandler;
public ParallelDataCollectionEventsHandler(IRequestData requestData,
IProxyExecutionManager proxyExecutionManager,
@@ -27,6 +25,8 @@ public ParallelDataCollectionEventsHandler(IRequestData requestData,
ParallelRunDataAggregator runDataAggregator) :
this(requestData, proxyExecutionManager, actualRunEventsHandler, parallelProxyExecutionManager, runDataAggregator, JsonDataSerializer.Instance)
{
+ // TODO : use TestPluginCache to iterate over all IDataCollectorAttachments
+ attachmentsHandler = new MultiTestRunsDataCollectorAttachmentsHandler(new CodeCoverageDataAttachmentsHandler());
}
internal ParallelDataCollectionEventsHandler(IRequestData requestData,
@@ -53,27 +53,7 @@ public override void HandleTestRunComplete(
if (parallelRunComplete)
{
- // TODO : use TestPluginCache to iterate over all IDataCollectorAttachments
- {
- var coverageHandler = new CodeCoverageDataAttachmentsHandler();
- Uri attachementUri = coverageHandler.GetExtensionUri();
- if (attachementUri != null)
- {
- var coverageAttachments = runDataAggregator.RunContextAttachments
- .Where(dataCollectionAttachment => attachementUri.Equals(dataCollectionAttachment.Uri)).ToArray();
-
- foreach (var coverageAttachment in coverageAttachments)
- {
- runDataAggregator.RunContextAttachments.Remove(coverageAttachment);
- }
-
- ICollection attachments = coverageHandler.HandleDataCollectionAttachmentSets(new Collection(coverageAttachments));
- foreach (var attachment in attachments)
- {
- runDataAggregator.RunContextAttachments.Add(attachment);
- }
- }
- }
+ attachmentsHandler.HandleAttachements(runDataAggregator.RunContextAttachments);
var completedArgs = new TestRunCompleteEventArgs(this.runDataAggregator.GetAggregatedRunStats(),
this.runDataAggregator.IsCanceled,
diff --git a/src/Microsoft.TestPlatform.CrossPlatEngine/EventHandlers/TestRequestHandler.cs b/src/Microsoft.TestPlatform.CrossPlatEngine/EventHandlers/TestRequestHandler.cs
index 5319d0bb78..18759177dd 100644
--- a/src/Microsoft.TestPlatform.CrossPlatEngine/EventHandlers/TestRequestHandler.cs
+++ b/src/Microsoft.TestPlatform.CrossPlatEngine/EventHandlers/TestRequestHandler.cs
@@ -5,12 +5,15 @@ namespace Microsoft.VisualStudio.TestPlatform.CommunicationUtilities
{
using System;
using System.Collections.Generic;
+ using System.Linq;
using System.Threading;
using Microsoft.VisualStudio.TestPlatform.CommunicationUtilities.EventHandlers;
using Microsoft.VisualStudio.TestPlatform.CommunicationUtilities.Interfaces;
using Microsoft.VisualStudio.TestPlatform.CommunicationUtilities.ObjectModel;
+ using Microsoft.VisualStudio.TestPlatform.CrossPlatEngine.DataCollection;
using Microsoft.VisualStudio.TestPlatform.CrossPlatEngine.EventHandlers;
+ using Microsoft.VisualStudio.TestPlatform.CrossPlatEngine.MultiTestRunsFinalization;
using Microsoft.VisualStudio.TestPlatform.ObjectModel;
using Microsoft.VisualStudio.TestPlatform.ObjectModel.Client;
using Microsoft.VisualStudio.TestPlatform.ObjectModel.Engine;
@@ -193,6 +196,19 @@ public void DiscoveryComplete(DiscoveryCompleteEventArgs discoveryCompleteEventA
this.SendData(data);
}
+ ///
+ public void MultiTestRunsFinalizationComplete(ICollection attachments)
+ {
+ var data = this.dataSerializer.SerializePayload(
+ MessageType.MultiTestRunsFinalizationComplete,
+ new MultiTestRunsFinalizationCompletePayload
+ {
+ Attachments = attachments
+ },
+ this.protocolVersion);
+ this.SendData(data);
+ }
+
///
public int LaunchProcessWithDebuggerAttached(TestProcessStartInfo testProcessStartInfo)
{
@@ -359,6 +375,24 @@ public void OnMessageReceived(object sender, MessageReceivedEventArgs messageRec
break;
}
+ case MessageType.MultiTestRunsFinalization:
+ {
+ EqtTrace.Info("Multi test runs finalization started.");
+ var multiTestRunsFinalizationEventsHandler = new MultiTestRunsFinalizationEventsHandler(this);
+ var multiTestRunsFinalizationManager = new MultiTestRunsFinalizationManager(new MultiTestRunsDataCollectorAttachmentsHandler(new CodeCoverageDataAttachmentsHandler()));
+ var multiTestRunsFinalizationPayload = this.dataSerializer.DeserializePayload(message);
+
+ jobQueue.QueueJob(
+ () =>
+ multiTestRunsFinalizationManager
+ .FinalizeMultiTestRuns(
+ multiTestRunsFinalizationPayload.Attachments,
+ multiTestRunsFinalizationEventsHandler),
+ 0);
+
+ break;
+ }
+
case MessageType.CancelTestRun:
jobQueue.Pause();
this.testHostManagerFactoryReady.Wait();
diff --git a/src/Microsoft.TestPlatform.CrossPlatEngine/MultiTestRunsFinalization/MultiTestRunsFinalizationManager.cs b/src/Microsoft.TestPlatform.CrossPlatEngine/MultiTestRunsFinalization/MultiTestRunsFinalizationManager.cs
index 9fad708282..7d338890f8 100644
--- a/src/Microsoft.TestPlatform.CrossPlatEngine/MultiTestRunsFinalization/MultiTestRunsFinalizationManager.cs
+++ b/src/Microsoft.TestPlatform.CrossPlatEngine/MultiTestRunsFinalization/MultiTestRunsFinalizationManager.cs
@@ -1,10 +1,38 @@
-using System;
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+
using System.Collections.Generic;
-using System.Text;
+using Microsoft.VisualStudio.TestPlatform.CrossPlatEngine.DataCollection;
+using Microsoft.VisualStudio.TestPlatform.ObjectModel;
+using Microsoft.VisualStudio.TestPlatform.ObjectModel.Client;
+using Microsoft.VisualStudio.TestPlatform.ObjectModel.Engine.TesthostProtocol;
namespace Microsoft.VisualStudio.TestPlatform.CrossPlatEngine.MultiTestRunsFinalization
{
- class MultiTestRunsFinalizationManager
+ ///
+ /// Orchestrates multi test runs finalization operations for the engine communicating with the test host process.
+ ///
+ public class MultiTestRunsFinalizationManager : IMultiTestRunsFinalizationManager
{
+ private readonly MultiTestRunsDataCollectorAttachmentsHandler attachmentsHandler;
+
+ ///
+ /// Initializes a new instance of the class.
+ ///
+ public MultiTestRunsFinalizationManager(MultiTestRunsDataCollectorAttachmentsHandler attachmentsHandler)
+ {
+ this.attachmentsHandler = attachmentsHandler;
+ }
+
+ ///
+ /// Finalizes multi test runs
+ ///
+ /// Attachments
+ /// EventHandler for handling multi test runs finalization events from Engine
+ public void FinalizeMultiTestRuns(ICollection attachments, IMultiTestRunsFinalizationEventsHandler eventHandler)
+ {
+ attachmentsHandler.HandleAttachements(attachments);
+ eventHandler.HandleMultiTestRunsFinalizationComplete(attachments);
+ }
}
}
diff --git a/src/Microsoft.TestPlatform.ObjectModel/Client/Interfaces/IMultiTestRunsFinalizationEventsHandler.cs b/src/Microsoft.TestPlatform.ObjectModel/Client/Interfaces/IMultiTestRunsFinalizationEventsHandler.cs
index aad25a5359..ed4cbd7b8d 100644
--- a/src/Microsoft.TestPlatform.ObjectModel/Client/Interfaces/IMultiTestRunsFinalizationEventsHandler.cs
+++ b/src/Microsoft.TestPlatform.ObjectModel/Client/Interfaces/IMultiTestRunsFinalizationEventsHandler.cs
@@ -1,10 +1,10 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+using System.Collections.Generic;
+
namespace Microsoft.VisualStudio.TestPlatform.ObjectModel.Client
{
- using System.Collections.Generic;
-
///
/// Interface contract for handling multi test runs finalization complete events
///
@@ -14,6 +14,6 @@ public interface IMultiTestRunsFinalizationEventsHandler : ITestMessageEventHand
/// Dispatch MultiTestRunsFinalizationComplete event to listeners.
///
/// Attachments reprocessed.
- void HandleMultiTestRunsFinalizationComplete(IEnumerable attachments);
+ void HandleMultiTestRunsFinalizationComplete(ICollection attachments);
}
}
\ No newline at end of file
diff --git a/src/Microsoft.TestPlatform.ObjectModel/Client/Payloads/MultiTestRunsFinalizationPayload.cs b/src/Microsoft.TestPlatform.ObjectModel/Client/Payloads/MultiTestRunsFinalizationPayload.cs
index 662c6dc6f6..63f81593e5 100644
--- a/src/Microsoft.TestPlatform.ObjectModel/Client/Payloads/MultiTestRunsFinalizationPayload.cs
+++ b/src/Microsoft.TestPlatform.ObjectModel/Client/Payloads/MultiTestRunsFinalizationPayload.cs
@@ -1,7 +1,7 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
-namespace Microsoft.VisualStudio.TestPlatform.ObjectModel.Client.Payloads
+namespace Microsoft.VisualStudio.TestPlatform.ObjectModel.Client
{
using System.Collections.Generic;
using System.Runtime.Serialization;
@@ -15,6 +15,6 @@ public class MultiTestRunsFinalizationPayload
/// Settings used for the discovery request.
///
[DataMember]
- public IEnumerable Attachments { get; set; }
+ public ICollection Attachments { get; set; }
}
}
diff --git a/src/Microsoft.TestPlatform.VsTestConsole.TranslationLayer/Interfaces/ITranslationLayerRequestSender.cs b/src/Microsoft.TestPlatform.VsTestConsole.TranslationLayer/Interfaces/ITranslationLayerRequestSender.cs
index 9af7ac69f6..a8e73ab57c 100644
--- a/src/Microsoft.TestPlatform.VsTestConsole.TranslationLayer/Interfaces/ITranslationLayerRequestSender.cs
+++ b/src/Microsoft.TestPlatform.VsTestConsole.TranslationLayer/Interfaces/ITranslationLayerRequestSender.cs
@@ -116,6 +116,6 @@ internal interface ITranslationLayerRequestSender : IDisposable
///
/// List of attachements
///
- void FinalizeMultiTestRuns(IEnumerable attachments, IMultiTestRunsFinalizationEventsHandler multiTestRunsFinalizationCompleteEventsHandler);
+ void FinalizeMultiTestRuns(ICollection attachments, IMultiTestRunsFinalizationEventsHandler multiTestRunsFinalizationCompleteEventsHandler);
}
}
diff --git a/src/Microsoft.TestPlatform.VsTestConsole.TranslationLayer/Interfaces/IVsTestConsoleWrapper2.cs b/src/Microsoft.TestPlatform.VsTestConsole.TranslationLayer/Interfaces/IVsTestConsoleWrapper2.cs
index 674a0dd0f5..9988ed548a 100644
--- a/src/Microsoft.TestPlatform.VsTestConsole.TranslationLayer/Interfaces/IVsTestConsoleWrapper2.cs
+++ b/src/Microsoft.TestPlatform.VsTestConsole.TranslationLayer/Interfaces/IVsTestConsoleWrapper2.cs
@@ -18,6 +18,6 @@ public interface IVsTestConsoleWrapper2 : IVsTestConsoleWrapper
///
/// List of attachements
/// EventHandler to receive session complete event
- void FinalizeMultiTestRuns(IEnumerable attachments, IMultiTestRunsFinalizationEventsHandler multiTestRunsFinalizationCompleteEventsHandler);
+ void FinalizeMultiTestRuns(ICollection attachments, IMultiTestRunsFinalizationEventsHandler multiTestRunsFinalizationCompleteEventsHandler);
}
}
diff --git a/src/Microsoft.TestPlatform.VsTestConsole.TranslationLayer/VsTestConsoleRequestSender.cs b/src/Microsoft.TestPlatform.VsTestConsole.TranslationLayer/VsTestConsoleRequestSender.cs
index 8c3d0f05d1..b01516f499 100644
--- a/src/Microsoft.TestPlatform.VsTestConsole.TranslationLayer/VsTestConsoleRequestSender.cs
+++ b/src/Microsoft.TestPlatform.VsTestConsole.TranslationLayer/VsTestConsoleRequestSender.cs
@@ -19,7 +19,6 @@ namespace Microsoft.TestPlatform.VsTestConsole.TranslationLayer
using Microsoft.VisualStudio.TestPlatform.ObjectModel;
using Microsoft.VisualStudio.TestPlatform.ObjectModel.Client;
using Microsoft.VisualStudio.TestPlatform.ObjectModel.Client.Interfaces;
- using Microsoft.VisualStudio.TestPlatform.ObjectModel.Client.Payloads;
using Microsoft.VisualStudio.TestPlatform.ObjectModel.Logging;
using TranslationLayerResources = Microsoft.VisualStudio.TestPlatform.VsTestConsole.TranslationLayer.Resources.Resources;
@@ -385,7 +384,7 @@ public void EndSession()
}
///
- public void FinalizeMultiTestRuns(IEnumerable attachments, IMultiTestRunsFinalizationEventsHandler testSessionEventsHandler)
+ public void FinalizeMultiTestRuns(ICollection attachments, IMultiTestRunsFinalizationEventsHandler testSessionEventsHandler)
{
this.SendMessageAndListenAndReportAttachements(attachments, testSessionEventsHandler);
}
@@ -732,7 +731,7 @@ private async Task SendMessageAndListenAndReportTestResultsAsync(string messageT
this.testPlatformEventSource.TranslationLayerExecutionStop();
}
- private void SendMessageAndListenAndReportAttachements(IEnumerable attachments, IMultiTestRunsFinalizationEventsHandler eventHandler)
+ private void SendMessageAndListenAndReportAttachements(ICollection attachments, IMultiTestRunsFinalizationEventsHandler eventHandler)
{
try
{
@@ -750,7 +749,7 @@ private void SendMessageAndListenAndReportAttachements(IEnumerable
- public void FinalizeMultiTestRuns(IEnumerable attachments, IMultiTestRunsFinalizationEventsHandler testSessionEventsHandler)
+ public void FinalizeMultiTestRuns(ICollection attachments, IMultiTestRunsFinalizationEventsHandler testSessionEventsHandler)
{
this.testPlatformEventSource.TranslationLayerMultiTestRunsFinalizationStart();