Skip to content

Commit

Permalink
In-process vstest.console (#3728)
Browse files Browse the repository at this point in the history
  • Loading branch information
nohwnd committed Jul 21, 2022
1 parent 8955aa1 commit 8053633
Show file tree
Hide file tree
Showing 38 changed files with 2,432 additions and 35 deletions.
13 changes: 0 additions & 13 deletions TestPlatform.sln
Original file line number Diff line number Diff line change
Expand Up @@ -934,18 +934,6 @@ Global
{62E9D32B-B989-43CF-81A2-B38B3367FCA3}.Release|x64.Build.0 = Release|Any CPU
{62E9D32B-B989-43CF-81A2-B38B3367FCA3}.Release|x86.ActiveCfg = Release|Any CPU
{62E9D32B-B989-43CF-81A2-B38B3367FCA3}.Release|x86.Build.0 = Release|Any CPU
{4DA57968-F547-4019-8381-03A218B6C385}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{4DA57968-F547-4019-8381-03A218B6C385}.Debug|Any CPU.Build.0 = Debug|Any CPU
{4DA57968-F547-4019-8381-03A218B6C385}.Debug|x64.ActiveCfg = Debug|Any CPU
{4DA57968-F547-4019-8381-03A218B6C385}.Debug|x64.Build.0 = Debug|Any CPU
{4DA57968-F547-4019-8381-03A218B6C385}.Debug|x86.ActiveCfg = Debug|Any CPU
{4DA57968-F547-4019-8381-03A218B6C385}.Debug|x86.Build.0 = Debug|Any CPU
{4DA57968-F547-4019-8381-03A218B6C385}.Release|Any CPU.ActiveCfg = Release|Any CPU
{4DA57968-F547-4019-8381-03A218B6C385}.Release|Any CPU.Build.0 = Release|Any CPU
{4DA57968-F547-4019-8381-03A218B6C385}.Release|x64.ActiveCfg = Release|Any CPU
{4DA57968-F547-4019-8381-03A218B6C385}.Release|x64.Build.0 = Release|Any CPU
{4DA57968-F547-4019-8381-03A218B6C385}.Release|x86.ActiveCfg = Release|Any CPU
{4DA57968-F547-4019-8381-03A218B6C385}.Release|x86.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
Expand Down Expand Up @@ -1025,7 +1013,6 @@ Global
{29270853-90DC-4C39-9621-F47AE40A79B6} = {B27FAFDF-2DBA-4AB0-BA85-FD5F21D359D6}
{186069FE-E1E8-4DE1-BEA4-0FF1484D22D1} = {ED0C35EB-7F31-4841-A24F-8EB708FFA959}
{62E9D32B-B989-43CF-81A2-B38B3367FCA3} = {B705537C-B82C-4A30-AFA5-6244D9A7DAEB}
{4DA57968-F547-4019-8381-03A218B6C385} = {6CE2F530-582B-4695-A209-41065E103426}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {0541B30C-FF51-4E28-B172-83F5F3934BCD}
Expand Down
12 changes: 10 additions & 2 deletions src/Microsoft.TestPlatform.Client/DesignMode/DesignModeClient.cs
Original file line number Diff line number Diff line change
Expand Up @@ -83,7 +83,12 @@ internal DesignModeClient(ICommunicationManager communicationManager, IDataSeria
/// <summary>
/// Property exposing the Instance
/// </summary>
public static IDesignModeClient? Instance { get; private set; }
public static DesignModeClient? Instance { get; private set; }

/// <summary>
/// Gets the test request manager.
/// </summary>
public ITestRequestManager? TestRequestManager { get; internal set; }

/// <summary>
/// Initializes DesignMode
Expand All @@ -105,7 +110,10 @@ public static void Initialize()
/// </param>
public void ConnectToClientAndProcessRequests(int port, ITestRequestManager testRequestManager)
{
EqtTrace.Info("Trying to connect to server on port: {0}", port);
// Used by the in-process vstest.console wrapper.
TestRequestManager = testRequestManager;

EqtTrace.Info("Trying to connect to server on port : {0}", port);
_communicationManager.SetupClientAsync(new IPEndPoint(IPAddress.Loopback, port));

var connectionTimeoutInSecs = EnvironmentHelper.GetConnectionTimeout();
Expand Down
4 changes: 4 additions & 0 deletions src/Microsoft.TestPlatform.Client/Friends.cs
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,15 @@

#region Product Assemblies

[assembly: InternalsVisibleTo("vstest.console, PublicKey=002400000480000094000000060200000024000052534131000400000100010007d1fa57c4aed9f0a32e84aa0faefd0de9e8fd6aec8f87fb03766c834c99921eb23be79ad9d5dcc1dd9ad236132102900b723cf980957fc4e177108fc607774f29e8320e92ea05ece4e821c0a5efe8f1645c4c0c93c1ab99285d622caa652c1dfad63d745d6f2de5f17e5eaf0fc4963d261c8a12436518206dc093344d5ad293")]
[assembly: InternalsVisibleTo("vstest.console.arm64, PublicKey=002400000480000094000000060200000024000052534131000400000100010007d1fa57c4aed9f0a32e84aa0faefd0de9e8fd6aec8f87fb03766c834c99921eb23be79ad9d5dcc1dd9ad236132102900b723cf980957fc4e177108fc607774f29e8320e92ea05ece4e821c0a5efe8f1645c4c0c93c1ab99285d622caa652c1dfad63d745d6f2de5f17e5eaf0fc4963d261c8a12436518206dc093344d5ad293")]

#endregion

#region Test Assemblies

[assembly: InternalsVisibleTo("Microsoft.TestPlatform.Client.UnitTests, PublicKey=002400000480000094000000060200000024000052534131000400000100010007d1fa57c4aed9f0a32e84aa0faefd0de9e8fd6aec8f87fb03766c834c99921eb23be79ad9d5dcc1dd9ad236132102900b723cf980957fc4e177108fc607774f29e8320e92ea05ece4e821c0a5efe8f1645c4c0c93c1ab99285d622caa652c1dfad63d745d6f2de5f17e5eaf0fc4963d261c8a12436518206dc093344d5ad293")]
[assembly: InternalsVisibleTo("vstest.ProgrammerTests, PublicKey=002400000480000094000000060200000024000052534131000400000100010007d1fa57c4aed9f0a32e84aa0faefd0de9e8fd6aec8f87fb03766c834c99921eb23be79ad9d5dcc1dd9ad236132102900b723cf980957fc4e177108fc607774f29e8320e92ea05ece4e821c0a5efe8f1645c4c0c93c1ab99285d622caa652c1dfad63d745d6f2de5f17e5eaf0fc4963d261c8a12436518206dc093344d5ad293")]
[assembly: InternalsVisibleTo("vstest.console.UnitTests, PublicKey=002400000480000094000000060200000024000052534131000400000100010007d1fa57c4aed9f0a32e84aa0faefd0de9e8fd6aec8f87fb03766c834c99921eb23be79ad9d5dcc1dd9ad236132102900b723cf980957fc4e177108fc607774f29e8320e92ea05ece4e821c0a5efe8f1645c4c0c93c1ab99285d622caa652c1dfad63d745d6f2de5f17e5eaf0fc4963d261c8a12436518206dc093344d5ad293")]

#endregion
Original file line number Diff line number Diff line change
Expand Up @@ -76,7 +76,7 @@ Microsoft.VisualStudio.TestPlatform.Client.TestRunAttachmentsProcessing.TestRunA
Microsoft.VisualStudio.TestPlatform.Client.TestRunAttachmentsProcessing.TestRunAttachmentsProcessingEventsHandler.HandleTestRunAttachmentsProcessingProgress(Microsoft.VisualStudio.TestPlatform.ObjectModel.Client.TestRunAttachmentsProcessingProgressEventArgs! attachmentsProcessingProgressEventArgs) -> void
Microsoft.VisualStudio.TestPlatform.Client.TestRunAttachmentsProcessing.TestRunAttachmentsProcessingEventsHandler.TestRunAttachmentsProcessingEventsHandler(Microsoft.VisualStudio.TestPlatform.CommunicationUtilities.Interfaces.ICommunicationManager! communicationManager) -> void
static Microsoft.VisualStudio.TestPlatform.Client.DesignMode.DesignModeClient.Initialize() -> void
static Microsoft.VisualStudio.TestPlatform.Client.DesignMode.DesignModeClient.Instance.get -> Microsoft.VisualStudio.TestPlatform.Client.DesignMode.IDesignModeClient?
static Microsoft.VisualStudio.TestPlatform.Client.DesignMode.DesignModeClient.Instance.get -> Microsoft.VisualStudio.TestPlatform.Client.DesignMode.DesignModeClient?
static Microsoft.VisualStudio.TestPlatform.Client.TestPlatformFactory.GetTestPlatform() -> Microsoft.VisualStudio.TestPlatform.ObjectModel.Client.ITestPlatform!
virtual Microsoft.VisualStudio.TestPlatform.Client.DesignMode.DesignModeClient.Dispose(bool disposing) -> void
virtual Microsoft.VisualStudio.TestPlatform.Client.Execution.TestRunRequest.HandleTestRunStatsChange(Microsoft.VisualStudio.TestPlatform.ObjectModel.Client.TestRunChangedEventArgs? testRunChangedArgs) -> void
Expand All @@ -87,3 +87,4 @@ Microsoft.VisualStudio.TestPlatform.Client.Execution.TestRunRequest.AttachDebugg
Microsoft.VisualStudio.TestPlatform.Client.RequestHelper.ITestRequestManager.RunTests(Microsoft.VisualStudio.TestPlatform.ObjectModel.Client.TestRunRequestPayload! testRunRequestPayLoad, Microsoft.VisualStudio.TestPlatform.ObjectModel.Client.Interfaces.ITestHostLauncher3? customTestHostLauncher, Microsoft.VisualStudio.TestPlatform.Common.Interfaces.ITestRunEventsRegistrar! testRunEventsRegistrar, Microsoft.VisualStudio.TestPlatform.ObjectModel.Client.ProtocolConfig! protocolConfig) -> void
Microsoft.VisualStudio.TestPlatform.Client.RequestHelper.ITestRequestManager.StartTestSession(Microsoft.VisualStudio.TestPlatform.ObjectModel.Client.Payloads.StartTestSessionPayload! payload, Microsoft.VisualStudio.TestPlatform.ObjectModel.Client.Interfaces.ITestHostLauncher3? testHostLauncher, Microsoft.VisualStudio.TestPlatform.ObjectModel.Client.ITestSessionEventsHandler! eventsHandler, Microsoft.VisualStudio.TestPlatform.ObjectModel.Client.ProtocolConfig! protocolConfig) -> void
static Microsoft.VisualStudio.TestPlatform.Client.DesignMode.DesignModeTestHostLauncherFactory.GetCustomHostLauncherForTestRun(Microsoft.VisualStudio.TestPlatform.Client.DesignMode.IDesignModeClient! designModeClient, bool debuggingEnabled) -> Microsoft.VisualStudio.TestPlatform.ObjectModel.Client.Interfaces.ITestHostLauncher3!
Microsoft.VisualStudio.TestPlatform.Client.DesignMode.DesignModeClient.TestRequestManager.get -> Microsoft.VisualStudio.TestPlatform.Client.RequestHelper.ITestRequestManager?
11 changes: 11 additions & 0 deletions src/Microsoft.TestPlatform.Client/TestPlatform.cs
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
using System.IO;
using System.Linq;
using System.Reflection;
using System.Reflection.Metadata;

using Microsoft.VisualStudio.TestPlatform.Client.Discovery;
using Microsoft.VisualStudio.TestPlatform.Client.Execution;
Expand Down Expand Up @@ -292,6 +293,16 @@ private static void AddExtensionAssembliesFromExtensionDirectory()
}

string extensionsFolder = Path.Combine(Path.GetDirectoryName(typeof(TestPlatform).GetTypeInfo().Assembly.GetAssemblyLocation()), "Extensions");
if (!fileHelper.DirectoryExists(extensionsFolder))
{
// TODO: Since we no-longer run from <playground>\vstest.console\vstest.conosle.exe in Playground, the relative
// extensions folder location changed and we need to patch it. This should be a TEMPORARY solution though, we
// should come up with a better way of fixing this.
// NOTE: This is specific to Playground which references vstest.console from a location that doesn't contain
// the Extensions folder. Normal projects shouldn't have this issue.
extensionsFolder = Path.Combine(Path.GetDirectoryName(extensionsFolder), "vstest.console", "Extensions");
}

if (fileHelper.DirectoryExists(extensionsFolder))
{
// Load default runtime providers
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
// 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;

using Microsoft.VisualStudio.TestPlatform.ObjectModel.Client;
using Microsoft.VisualStudio.TestPlatform.ObjectModel.Logging;

namespace Microsoft.VisualStudio.TestPlatform.Client;

internal class InProcessTestSessionEventsHandler : ITestSessionEventsHandler
{
private readonly ITestSessionEventsHandler _testSessionEventsHandler;

public EventHandler<StartTestSessionCompleteEventArgs?>? StartTestSessionCompleteEventHandler { get; set; }

public EventHandler<StopTestSessionCompleteEventArgs?>? StopTestSessionCompleteEventHandler { get; set; }

public InProcessTestSessionEventsHandler(ITestSessionEventsHandler testSessionEventsHandler)
{
_testSessionEventsHandler = testSessionEventsHandler;
}

public void HandleLogMessage(TestMessageLevel level, string? message)
{
_testSessionEventsHandler.HandleLogMessage(level, message);
}

public void HandleRawMessage(string rawMessage)
{
_testSessionEventsHandler.HandleRawMessage(rawMessage);
}

public void HandleStartTestSessionComplete(StartTestSessionCompleteEventArgs? eventArgs)
{
StartTestSessionCompleteEventHandler?.Invoke(this, eventArgs);
_testSessionEventsHandler.HandleStartTestSessionComplete(eventArgs);
}

public void HandleStopTestSessionComplete(StopTestSessionCompleteEventArgs? eventArgs)
{
StopTestSessionCompleteEventHandler?.Invoke(this, eventArgs);
_testSessionEventsHandler.HandleStopTestSessionComplete(eventArgs);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
using System;
using System.Diagnostics;
using System.IO;
using System.Reflection;
using System.Runtime.InteropServices;
using System.Threading.Tasks;

Expand Down Expand Up @@ -98,10 +99,18 @@ private static bool AttachVs(Process process, int? vsPid)
return fromPath;
}

var parent = Path.GetDirectoryName(Process.GetCurrentProcess().MainModule.FileName);

# if NETCOREAPP
var parent = AppContext.BaseDirectory;
#else
// Don't use current process MainModule here, it resolves to dotnet if you invoke
// dotnet vstest.console.dll, or dotnet testhost.dll. Use the entry assembly instead.
var parent = Path.GetDirectoryName(Assembly.GetEntryAssembly().Location);
#endif
while (parent != null)
{
var path = Path.Combine(parent, @"src\AttachVS\bin\Debug\net472\AttachVS.exe");
Debug.WriteLine($"Looking for AttachVS in: {path}.");
if (File.Exists(path))
{
return path;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -164,17 +164,20 @@ public virtual TestProcessStartInfo GetTestHostProcessStartInfo(

string testHostProcessName = GetTestHostName(_architecture, _targetFramework, _processHelper.GetCurrentProcessArchitecture());

var currentWorkingDirectory = Path.Combine(Path.GetDirectoryName(typeof(DefaultTestHostManager).GetTypeInfo().Assembly.Location)!, "..//");
var currentWorkingDirectory = Path.GetDirectoryName(typeof(DefaultTestHostManager).GetTypeInfo().Assembly.Location);
var argumentsString = " " + connectionInfo.ToCommandLineOptions();

TPDebug.Assert(currentWorkingDirectory is not null, "Current working directory must not be null.");

// check in current location for testhost exe
var testhostProcessPath = Path.Combine(currentWorkingDirectory, testHostProcessName);

var originalTestHostProcessName = testHostProcessName;
if (!File.Exists(testhostProcessPath))
{
// "TestHost" is the name of the folder which contain Full CLR built testhost package assemblies, in dotnet SDK.
testHostProcessName = Path.Combine("TestHost", testHostProcessName);
testhostProcessPath = Path.Combine(currentWorkingDirectory, testHostProcessName);
testHostProcessName = Path.Combine("TestHost", originalTestHostProcessName);
testhostProcessPath = Path.Combine(currentWorkingDirectory, "..", testHostProcessName);
}

if (!Shared)
Expand All @@ -187,11 +190,27 @@ public virtual TestProcessStartInfo GetTestHostProcessStartInfo(
EqtTrace.Verbose("DefaultTestHostmanager: Full path of {0} is {1}", testHostProcessName, testhostProcessPath);

var launcherPath = testhostProcessPath;
if (!_environment.OperatingSystem.Equals(PlatformOperatingSystem.Windows) &&
!_processHelper.GetCurrentProcessFileName()!.EndsWith(DotnetHostHelper.MONOEXENAME, StringComparison.OrdinalIgnoreCase))
var processName = _processHelper.GetCurrentProcessFileName();
if (processName is not null)
{
launcherPath = _dotnetHostHelper.GetMonoPath();
argumentsString = testhostProcessPath.AddDoubleQuote() + " " + argumentsString;
if (!_environment.OperatingSystem.Equals(PlatformOperatingSystem.Windows) &&
!processName.EndsWith(DotnetHostHelper.MONOEXENAME, StringComparison.OrdinalIgnoreCase))
{
launcherPath = _dotnetHostHelper.GetMonoPath();
argumentsString = testhostProcessPath.AddDoubleQuote() + " " + argumentsString;
}
else
{
// Patching the relative path for IDE scenarios.
if (_environment.OperatingSystem.Equals(PlatformOperatingSystem.Windows)
&& !(processName.EndsWith("dotnet", StringComparison.OrdinalIgnoreCase)
|| processName.EndsWith("dotnet.exe", StringComparison.OrdinalIgnoreCase))
&& !File.Exists(testhostProcessPath))
{
testhostProcessPath = Path.Combine(currentWorkingDirectory, "..", originalTestHostProcessName);
launcherPath = testhostProcessPath;
}
}
}

// For IDEs and other scenario, current directory should be the
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,5 +11,9 @@

[assembly: InternalsVisibleTo("TranslationLayer.UnitTests, PublicKey=002400000480000094000000060200000024000052534131000400000100010007d1fa57c4aed9f0a32e84aa0faefd0de9e8fd6aec8f87fb03766c834c99921eb23be79ad9d5dcc1dd9ad236132102900b723cf980957fc4e177108fc607774f29e8320e92ea05ece4e821c0a5efe8f1645c4c0c93c1ab99285d622caa652c1dfad63d745d6f2de5f17e5eaf0fc4963d261c8a12436518206dc093344d5ad293")]
[assembly: InternalsVisibleTo("Microsoft.TestPlatform.TestUtilities, PublicKey=002400000480000094000000060200000024000052534131000400000100010007d1fa57c4aed9f0a32e84aa0faefd0de9e8fd6aec8f87fb03766c834c99921eb23be79ad9d5dcc1dd9ad236132102900b723cf980957fc4e177108fc607774f29e8320e92ea05ece4e821c0a5efe8f1645c4c0c93c1ab99285d622caa652c1dfad63d745d6f2de5f17e5eaf0fc4963d261c8a12436518206dc093344d5ad293")]
[assembly: InternalsVisibleTo("TestPlatform.Playground, PublicKey=002400000480000094000000060200000024000052534131000400000100010007d1fa57c4aed9f0a32e84aa0faefd0de9e8fd6aec8f87fb03766c834c99921eb23be79ad9d5dcc1dd9ad236132102900b723cf980957fc4e177108fc607774f29e8320e92ea05ece4e821c0a5efe8f1645c4c0c93c1ab99285d622caa652c1dfad63d745d6f2de5f17e5eaf0fc4963d261c8a12436518206dc093344d5ad293")]
[assembly: InternalsVisibleTo("vstest.console, PublicKey=002400000480000094000000060200000024000052534131000400000100010007d1fa57c4aed9f0a32e84aa0faefd0de9e8fd6aec8f87fb03766c834c99921eb23be79ad9d5dcc1dd9ad236132102900b723cf980957fc4e177108fc607774f29e8320e92ea05ece4e821c0a5efe8f1645c4c0c93c1ab99285d622caa652c1dfad63d745d6f2de5f17e5eaf0fc4963d261c8a12436518206dc093344d5ad293")]
[assembly: InternalsVisibleTo("vstest.console.arm64, PublicKey=002400000480000094000000060200000024000052534131000400000100010007d1fa57c4aed9f0a32e84aa0faefd0de9e8fd6aec8f87fb03766c834c99921eb23be79ad9d5dcc1dd9ad236132102900b723cf980957fc4e177108fc607774f29e8320e92ea05ece4e821c0a5efe8f1645c4c0c93c1ab99285d622caa652c1dfad63d745d6f2de5f17e5eaf0fc4963d261c8a12436518206dc093344d5ad293")]
[assembly: InternalsVisibleTo("vstest.console.UnitTests, PublicKey=002400000480000094000000060200000024000052534131000400000100010007d1fa57c4aed9f0a32e84aa0faefd0de9e8fd6aec8f87fb03766c834c99921eb23be79ad9d5dcc1dd9ad236132102900b723cf980957fc4e177108fc607774f29e8320e92ea05ece4e821c0a5efe8f1645c4c0c93c1ab99285d622caa652c1dfad63d745d6f2de5f17e5eaf0fc4963d261c8a12436518206dc093344d5ad293")]

#endregion
Original file line number Diff line number Diff line change
Expand Up @@ -103,7 +103,7 @@ Microsoft.TestPlatform.VsTestConsole.TranslationLayer.TestSession.StopTestSessio
Microsoft.TestPlatform.VsTestConsole.TranslationLayer.TestSession.StopTestSessionAsync() -> System.Threading.Tasks.Task<bool>!
Microsoft.TestPlatform.VsTestConsole.TranslationLayer.TestSession.StopTestSessionAsync(Microsoft.VisualStudio.TestPlatform.ObjectModel.Client.ITestSessionEventsHandler! eventsHandler) -> System.Threading.Tasks.Task<bool>!
Microsoft.TestPlatform.VsTestConsole.TranslationLayer.TestSession.StopTestSessionAsync(Microsoft.VisualStudio.TestPlatform.ObjectModel.Client.TestPlatformOptions? options, Microsoft.VisualStudio.TestPlatform.ObjectModel.Client.ITestSessionEventsHandler! eventsHandler) -> System.Threading.Tasks.Task<bool>!
Microsoft.TestPlatform.VsTestConsole.TranslationLayer.TestSession.TestSession(Microsoft.VisualStudio.TestPlatform.ObjectModel.Client.TestSessionInfo! testSessionInfo, Microsoft.VisualStudio.TestPlatform.ObjectModel.Client.ITestSessionEventsHandler! eventsHandler, Microsoft.TestPlatform.VsTestConsole.TranslationLayer.Interfaces.IVsTestConsoleWrapper! consoleWrapper) -> void
Microsoft.TestPlatform.VsTestConsole.TranslationLayer.TestSession.TestSession(Microsoft.VisualStudio.TestPlatform.ObjectModel.Client.TestSessionInfo? testSessionInfo, Microsoft.VisualStudio.TestPlatform.ObjectModel.Client.ITestSessionEventsHandler! eventsHandler, Microsoft.TestPlatform.VsTestConsole.TranslationLayer.Interfaces.IVsTestConsoleWrapper! consoleWrapper) -> void
Microsoft.TestPlatform.VsTestConsole.TranslationLayer.TestSession.TestSessionInfo.get -> Microsoft.VisualStudio.TestPlatform.ObjectModel.Client.TestSessionInfo?
Microsoft.TestPlatform.VsTestConsole.TranslationLayer.TestSession.~TestSession() -> void
Microsoft.TestPlatform.VsTestConsole.TranslationLayer.TransationLayerException
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ public class TestSession : ITestSession
/// <param name="eventsHandler">The session event handler.</param>
/// <param name="consoleWrapper">The encapsulated console wrapper.</param>
public TestSession(
TestSessionInfo testSessionInfo,
TestSessionInfo? testSessionInfo,
ITestSessionEventsHandler eventsHandler,
IVsTestConsoleWrapper consoleWrapper)
{
Expand Down
Loading

0 comments on commit 8053633

Please sign in to comment.