Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
36 changes: 18 additions & 18 deletions eng/Versions.props
Original file line number Diff line number Diff line change
Expand Up @@ -63,38 +63,38 @@
<FluentAssertionsVersion>6.11.0</FluentAssertionsVersion>
<MoqVersion>4.16.1</MoqVersion>
<!-- For coverage use our own package on latest stable -->
<MicrosoftCodeCoverageVersion>17.4.1</MicrosoftCodeCoverageVersion>
<MicrosoftCodeCoverageVersion>17.9.0</MicrosoftCodeCoverageVersion>
<!-- These versions are used for running unit tests, and running acceptance tests. They are also used as the default version for projects
in TestAssets.sln to allow running and debugging tests in that solution directly in VS without having to run them via AcceptanceTests. -->
<MSTestTestFrameworkVersion>2.3.0-preview-20220711-02</MSTestTestFrameworkVersion>
<MSTestTestAdapterVersion>2.3.0-preview-20220711-02</MSTestTestAdapterVersion>
<MSTestTestFrameworkVersion>3.3.1</MSTestTestFrameworkVersion>
<MSTestTestAdapterVersion>3.3.1</MSTestTestAdapterVersion>
<MSTestAssertExtensionVersion>1.0.3-preview</MSTestAssertExtensionVersion>
<XUnitFrameworkVersion>2.3.1</XUnitFrameworkVersion>
<XUnitAdapterVersion>2.3.1</XUnitAdapterVersion>
<XUnitConsoleRunnerVersion>2.3.1</XUnitConsoleRunnerVersion>
<NUnit3FrameworkVersion>3.10.1</NUnit3FrameworkVersion>
<NUnit3AdapterVersion>3.11.0</NUnit3AdapterVersion>
<NUnitConsoleRunnerVersion>3.8.0</NUnitConsoleRunnerVersion>
<XUnitFrameworkVersion>2.4.2</XUnitFrameworkVersion>
<XUnitAdapterVersion>2.4.5</XUnitAdapterVersion>
<XUnitConsoleRunnerVersion>2.4.2</XUnitConsoleRunnerVersion>
<NUnit3FrameworkVersion>3.14.0</NUnit3FrameworkVersion>
<NUnit3AdapterVersion>3.17.0</NUnit3AdapterVersion>
<NUnitConsoleRunnerVersion>3.16.3</NUnitConsoleRunnerVersion>
<!--
Versions that are used when building projects from TestAssets.sln for compatibility tests. See Invoke-TestAssetsBuild in scripts/build.ps1.
Exact versions are used to avoid Nuget substituting them by closest match, if we make a typo.
These versions need to be "statically" readable because we read this file as xml in our build and tests.
-->
<!-- <MSTestFrameworkLatestVersion></MSTestFrameworkLatestVersion> is not here, because we don't build MSTest locally, so we don't have access to the latest version. -->
<MSTestFrameworkLatestPreviewVersion>[2.3.0-preview-20220613-02]</MSTestFrameworkLatestPreviewVersion>
<MSTestFrameworkLatestStableVersion>[2.2.10]</MSTestFrameworkLatestStableVersion>
<MSTestFrameworkRecentStableVersion>[2.2.9]</MSTestFrameworkRecentStableVersion>
<MSTestFrameworkMostDownloadedVersion>[2.1.0]</MSTestFrameworkMostDownloadedVersion>
<MSTestFrameworkPreviousStableVersion>[2.1.0]</MSTestFrameworkPreviousStableVersion>
<MSTestFrameworkLatestPreviewVersion>[3.3.1]</MSTestFrameworkLatestPreviewVersion>
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Probably needs to be some 3.4.0 preview version, right?

<MSTestFrameworkLatestStableVersion>[3.3.1]</MSTestFrameworkLatestStableVersion>
<MSTestFrameworkRecentStableVersion>[3.2.2]</MSTestFrameworkRecentStableVersion>
<MSTestFrameworkMostDownloadedVersion>[2.2.10]</MSTestFrameworkMostDownloadedVersion>
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

To be correct semantically this should be 1.3.2 according to nuget.org ;)

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

True. 🙂 I was also looking at this version. I chose 2.2.10 because it has more downloads over shorter period of time.

<MSTestFrameworkPreviousStableVersion>[2.2.10]</MSTestFrameworkPreviousStableVersion>
<MSTestFrameworkLegacyStableVersion>[1.4.0]</MSTestFrameworkLegacyStableVersion>
<!-- Versions that are used to restore previous versions of console, translation layer, and test.sdk for compatibility tests.
See Invoke-TestAssetsBuild in scripts/build.ps1. Exact versions are used to avoid Nuget substituting them by closest match, if we make a typo.
These versions need to be "statically" readable because we read this file as xml in our build and tests. -->
<!-- <VSTestConsoleLatestVersion></VSTestConsoleLatestVersion> is not here, NETTestSdkVersion is used instead, because that is the version of the locally built latest package. -->
<VSTestConsoleLatestPreviewVersion>[17.2.0-preview-20220401-08]</VSTestConsoleLatestPreviewVersion>
<VSTestConsoleLatestStableVersion>[17.2.0]</VSTestConsoleLatestStableVersion>
<VSTestConsoleRecentStableVersion>[17.1.0]</VSTestConsoleRecentStableVersion>
<VSTestConsoleMostDownloadedVersion>[16.6.1]</VSTestConsoleMostDownloadedVersion>
<VSTestConsoleLatestPreviewVersion>[17.10.0-release-24177-07]</VSTestConsoleLatestPreviewVersion>
<VSTestConsoleLatestStableVersion>[17.9.0]</VSTestConsoleLatestStableVersion>
<VSTestConsoleRecentStableVersion>[17.8.0]</VSTestConsoleRecentStableVersion>
<VSTestConsoleMostDownloadedVersion>[17.6.2]</VSTestConsoleMostDownloadedVersion>
<VSTestConsolePreviousStableVersion>[16.11.0]</VSTestConsolePreviousStableVersion>
<VSTestConsoleLegacyStableVersion>[15.9.2]</VSTestConsoleLegacyStableVersion>
<ILAsmPackageVersion>5.0.0</ILAsmPackageVersion>
Expand Down
4 changes: 2 additions & 2 deletions global.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"sdk": {
"version": "9.0.100-preview.1.24101.2",
"version": "9.0.100-preview.2.24157.14",
"rollForward": "minor",
"allowPrerelease": false,
"architecture": "x64"
Expand Down Expand Up @@ -29,7 +29,7 @@
},
"xcopy-msbuild": "17.8.5",
"vswhere": "2.2.7",
"dotnet": "9.0.100-preview.1.24101.2"
"dotnet": "9.0.100-preview.2.24157.14"
},
"msbuild-sdks": {
"Microsoft.DotNet.Arcade.Sdk": "9.0.0-beta.24207.1"
Expand Down
4 changes: 2 additions & 2 deletions playground/MSTest1/MSTest1.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,8 @@
</PropertyGroup>

<ItemGroup>
<PackageReference Include="MSTest.TestAdapter" Version="2.1.0" />
<PackageReference Include="MSTest.TestFramework" Version="2.1.0" />
<PackageReference Include="MSTest.TestAdapter" Version="3.3.1" />
<PackageReference Include="MSTest.TestFramework" Version="3.3.1" />
<PackageReference Include="coverlet.collector" Version="1.2.0" />
</ItemGroup>
<ItemGroup Condition=" $(TargetFramework.StartsWith('net4')) AND '$(OS)' != 'Windows_NT' ">
Expand Down
4 changes: 2 additions & 2 deletions playground/MSTest2/MSTest2.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,8 @@
</PropertyGroup>

<ItemGroup>
<PackageReference Include="MSTest.TestAdapter" Version="2.1.0" />
<PackageReference Include="MSTest.TestFramework" Version="2.1.0" />
<PackageReference Include="MSTest.TestAdapter" Version="3.3.1" />
<PackageReference Include="MSTest.TestFramework" Version="3.3.1" />
<PackageReference Include="coverlet.collector" Version="1.2.0" />
</ItemGroup>
<ItemGroup Condition=" $(TargetFramework.StartsWith('net4')) AND '$(OS)' != 'Windows_NT' ">
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,8 @@
</PropertyGroup>

<ItemGroup>
<PackageReference Include="MSTest.TestAdapter" Version="2.2.8" />
<PackageReference Include="MSTest.TestFramework" Version="2.2.8" />
<PackageReference Include="MSTest.TestAdapter" Version="3.3.1" />
<PackageReference Include="MSTest.TestFramework" Version="3.3.1" />
</ItemGroup>

<ItemGroup>
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
// This file is used by Code Analysis to maintain SuppressMessage
// attributes that are applied to this project.
// Project-level suppressions either have no target or are given
// a specific target and scoped to a namespace, type, member, etc.

using System.Diagnostics.CodeAnalysis;

[assembly: SuppressMessage("Reliability", "CA2022:Avoid inexact read with 'Stream.Read'", Justification = "<Pending>", Scope = "member", Target = "~M:Microsoft.VisualStudio.TestPlatform.CrossPlatEngine.Helpers.DotnetHostHelper.GetMuxerArchitectureByMachoOnMac(System.String)~System.Nullable{Microsoft.VisualStudio.TestPlatform.PlatformAbstractions.PlatformArchitecture}")]
30 changes: 30 additions & 0 deletions src/vstest.console/TestPlatformHelpers/TestRequestManager.cs
Original file line number Diff line number Diff line change
Expand Up @@ -1567,6 +1567,36 @@ internal static class KnownPlatformSourceFilter
"Microsoft.VisualStudio.TestPlatform.TestFramework.Extensions.dll",
"Microsoft.VisualStudio.TestPlatform.TestFramework.dll",
"Microsoft.VisualStudio.TestPlatform.TestFramework.resources.dll",

// Testing platform
"Microsoft.Testing.Extensions.CodeCoverage.dll",
"Microsoft.Testing.Extensions.CodeCoverage.resources.dll",
"Microsoft.Testing.Extensions.CrashDump.dll",
"Microsoft.Testing.Extensions.CrashDump.resources.dll",
"Microsoft.Testing.Extensions.Experimental.dll",
"Microsoft.Testing.Extensions.HangDump.dll",
"Microsoft.Testing.Extensions.HangDump.resources.dll",
"Microsoft.Testing.Extensions.HotReload.dll",
"Microsoft.Testing.Extensions.HotReload.resources.dll",
"Microsoft.Testing.Extensions.Retry.dll",
"Microsoft.Testing.Extensions.Retry.resources.dll",
"Microsoft.Testing.Extensions.Telemetry.dll",
"Microsoft.Testing.Extensions.Telemetry.resources.dll",
"Microsoft.Testing.Extensions.TrxReport.Abstractions.dll",
"Microsoft.Testing.Extensions.TrxReport.dll",
"Microsoft.Testing.Extensions.TrxReport.resources.dll",
"Microsoft.Testing.Extensions.VSTestBridge.dll",
"Microsoft.Testing.Extensions.VSTestBridge.resources.dll",
"Microsoft.Testing.Internal.Framework.dll",
"Microsoft.Testing.Internal.Framework.SourceGeneration.dll",
"Microsoft.Testing.Internal.VersionSourceGeneration.dll",
"Microsoft.Testing.Platform.dll",
"Microsoft.Testing.Platform.Extensions.dll",
"Microsoft.Testing.Platform.Extensions.VSTestBridge.dll",
"Microsoft.Testing.Platform.MSBuild.dll",
"Microsoft.Testing.Platform.MSBuild.resources.dll",
"Microsoft.Testing.Platform.resources.dll",

// For MSTest up to v3
"Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.dll",
"Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.resources.dll",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ namespace Microsoft.TestPlatform.AcceptanceTests;
public class BlameDataCollectorTests : AcceptanceTestBase
{
public const string NETCOREANDFX = "net462;net472;netcoreapp3.1";
public const string NET50 = "net5.0";
public const string NET60 = "net6.0";
private readonly string _procDumpPath;

public BlameDataCollectorTests()
Expand Down Expand Up @@ -130,9 +130,9 @@ public void BlameDataCollectorShouldOutputDumpFileWhenNoCrashOccursButCollectAlw
}

[TestMethod]
[NetCoreRunner("net462;net472;netcoreapp3.1;net5.0")]
[NetCoreRunner("net462;net472;netcoreapp3.1;net6.0")]
// should make no difference, keeping for easy debug
// [NetFrameworkRunner("net462;net472;netcoreapp3.1;net5.0")]
// [NetFrameworkRunner("net462;net472;netcoreapp3.1;net6.0")]
public void HangDumpOnTimeout(RunnerInfo runnerInfo)
{
SetTestEnvironment(_testEnvironment, runnerInfo);
Expand All @@ -152,7 +152,7 @@ public void HangDumpOnTimeout(RunnerInfo runnerInfo)
}

[TestMethod]
// net5.0 does not support dump on exit
// net6.0 does not support dump on exit
[NetCoreRunner("net462;net472;netcoreapp3.1")]
// should make no difference, keeping for easy debug
// [NetFrameworkRunner("net462;net472;netcoreapp3.1")]
Expand All @@ -176,7 +176,7 @@ public void CrashDumpWhenThereIsNoTimeout(RunnerInfo runnerInfo)
}

[TestMethod]
// net5.0 does not support dump on exit
// net6.0 does not support dump on exit
[NetCoreRunner("net462;net472;netcoreapp3.1")]
// should make no difference, keeping for easy debug
// [NetFrameworkRunner("net462;net472;netcoreapp3.1")]
Expand All @@ -200,9 +200,9 @@ public void CrashDumpOnExit(RunnerInfo runnerInfo)
}

[TestMethod]
[NetCoreRunner("net462;net472;netcoreapp3.1;net5.0")]
[NetCoreRunner("net462;net472;netcoreapp3.1;net6.0")]
// should make no difference, keeping for easy debug
// [NetFrameworkRunner("net462;net472;netcoreapp3.1;net5.0")]
// [NetFrameworkRunner("net462;net472;netcoreapp3.1;net6.0")]
public void CrashDumpOnStackOverflow(RunnerInfo runnerInfo)
{
SetTestEnvironment(_testEnvironment, runnerInfo);
Expand All @@ -222,7 +222,7 @@ public void CrashDumpOnStackOverflow(RunnerInfo runnerInfo)
}

[TestMethod]
[NetCoreRunner(NET50)]
[NetCoreRunner(NET60)]
// should make no difference, keeping for easy debug
// [NetFrameworkRunner(NET50)]
public void CrashDumpChildProcesses(RunnerInfo runnerInfo)
Expand All @@ -238,9 +238,9 @@ public void CrashDumpChildProcesses(RunnerInfo runnerInfo)
}

[TestMethod]
[NetCoreRunner("net462;net472;netcoreapp3.1;net5.0")]
[NetCoreRunner("net462;net472;netcoreapp3.1;net6.0")]
// should make no difference, keeping for easy debug
// [NetFrameworkRunner("net462;net472;netcoreapp3.1;net5.0")]
// [NetFrameworkRunner("net462;net472;netcoreapp3.1;net6.0")]
public void HangDumpChildProcesses(RunnerInfo runnerInfo)
{
SetTestEnvironment(_testEnvironment, runnerInfo);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -53,15 +53,6 @@ public DeprecateExtensionsPathWarningTests()
}
}

[TestMethod]
public void VerifyDeprecatedWarningIsThrownWhenAdaptersPickedFromExtensionDirectory()
{
var arguments = PrepareArguments(GetSampleTestAssembly(), null, null, FrameworkArgValue, resultsDirectory: TempDirectory.Path);

InvokeVsTest(arguments);
StdOutputContains("Adapter lookup is being changed, please follow");
}

public override string GetConsoleRunnerPath()
{
return Path.Combine(IntegrationTestEnvironment.PublishDirectory, $"Microsoft.TestPlatform.{IntegrationTestEnvironment.LatestLocallyBuiltNugetVersion}.nupkg", "tools",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ public void MSBuildLoggerCanBeEnabledByBuildPropertyAndDoesNotEatSpecialChars(Ru
// C:\Users\nohwnd\AppData\Local\Temp\vstest\xvoVt\UnitTest1.cs(41): error VSTEST1: (FailingTest) SampleUnitTestProject.UnitTest1.FailingTest() Assert.AreEqual failed. Expected:<2>. Actual:<3>. [C:\Users\nohwnd\AppData\Local\Temp\vstest\xvoVt\SimpleTestProject.csproj::TargetFramework=netcoreapp3.1]

StdOutputContains("error VSTEST1: FailingTest (");
StdOutputContains("): Error Message: Assert.AreEqual failed. Expected:<ğğğ𦮙我們剛才從𓋴𓅓𓏏𓇏𓇌𓀀 (System.String)>. Actual:<3 (System.Int32)>.");
StdOutputContains("): Error Message: Assert.AreEqual failed. Expected:<ğğğ𦮙我們剛才從𓋴𓅓𓏏𓇏𓇌𓀀>. Actual:<not the same>.");
StdOutputContains("at TerminalLoggerUnitTests.UnitTest1.FailingTest() in");
// We are sending those as low prio messages, they won't show up on screen but will be in binlog.
//StdOutputContains("passed PassingTest");
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -160,21 +160,6 @@ public void TestSessionTimeOutTests(RunnerInfo runnerInfo)
StdOutputDoesNotContains("Total tests: 6");
}

[TestMethod]
[NetCoreTargetFrameworkDataSource]
public void TestPlatformShouldBeCompatibleWithOldTestHost(RunnerInfo runnerInfo)
{
SetTestEnvironment(_testEnvironment, runnerInfo);

var assemblyPaths = GetAssetFullPath("SampleProjectWithOldTestHost.dll");
var arguments = PrepareArguments(assemblyPaths, GetTestAdapterPath(), string.Empty, FrameworkArgValue, runnerInfo.InIsolationValue, resultsDirectory: TempDirectory.Path);

InvokeVsTest(arguments);

ValidateSummaryStatus(1, 0, 0);
ExitCodeEquals(0);
}

[TestMethod]
[NetFullTargetFrameworkDataSource(inIsolation: true, inProcess: true)]
[NetCoreTargetFrameworkDataSource]
Expand Down Expand Up @@ -509,8 +494,8 @@ public void RunTestsWhenProvidingJustPlatformDllsFailsTheRun(RunnerInfo runnerIn
// or deps.json, and fails the run.
SetTestEnvironment(_testEnvironment, runnerInfo);

var xunitAssemblyPath = _testEnvironment.GetTestAsset("SimpleTestProject.dll");
var allDllsMatchingTestPattern = Directory.GetFiles(Path.GetDirectoryName(xunitAssemblyPath)!, "*test*.dll").Where(f => !f.EndsWith("SimpleTestProject.dll"));
var testAssemblyPath = _testEnvironment.GetTestAsset("SimpleTestProject.dll");
var allDllsMatchingTestPattern = Directory.GetFiles(Path.GetDirectoryName(testAssemblyPath)!, "*test*.dll").Where(f => !f.EndsWith("SimpleTestProject.dll"));

string assemblyPaths = string.Join(" ", allDllsMatchingTestPattern.Select(s => s.AddDoubleQuote()));
InvokeVsTestForExecution(assemblyPaths, testAdapterPath: string.Empty, FrameworkArgValue, string.Empty);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -65,8 +65,8 @@ public IEnumerable<object[]> GetData(MethodInfo methodInfo)
return dataRows;
}

public string GetDisplayName(MethodInfo methodInfo, object[] data)
public string GetDisplayName(MethodInfo methodInfo, object?[]? data)
{
return string.Format(CultureInfo.CurrentCulture, "{0} ({1})", methodInfo.Name, string.Join(",", data));
return string.Format(CultureInfo.CurrentCulture, "{0} ({1})", methodInfo.Name, string.Join(",", data ?? Array.Empty<string>()));
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -81,8 +81,8 @@ public IEnumerable<object[]> GetData(MethodInfo methodInfo)
return dataRows;
}

public string GetDisplayName(MethodInfo methodInfo, object[] data)
public string GetDisplayName(MethodInfo methodInfo, object?[]? data)
{
return string.Format(CultureInfo.CurrentCulture, "{0} ({1})", methodInfo.Name, string.Join(",", data));
return string.Format(CultureInfo.CurrentCulture, "{0} ({1})", methodInfo.Name, string.Join(",", data ?? Array.Empty<string>()));
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -68,8 +68,8 @@ public IEnumerable<object[]> GetData(MethodInfo methodInfo)
return dataRows;
}

public string GetDisplayName(MethodInfo methodInfo, object[] data)
public string GetDisplayName(MethodInfo methodInfo, object?[]? data)
{
return string.Format(CultureInfo.CurrentCulture, "{0} ({1})", methodInfo.Name, string.Join(",", data));
return string.Format(CultureInfo.CurrentCulture, "{0} ({1})", methodInfo.Name, string.Join(",", data ?? Array.Empty<string>()));
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -110,8 +110,8 @@ public IEnumerable<object[]> GetData(MethodInfo methodInfo)
return dataRows;
}

public string GetDisplayName(MethodInfo methodInfo, object[] data)
public string GetDisplayName(MethodInfo methodInfo, object?[]? data)
{
return string.Format(CultureInfo.CurrentCulture, "{0} ({1})", methodInfo.Name, string.Join(",", data));
return string.Format(CultureInfo.CurrentCulture, "{0} ({1})", methodInfo.Name, string.Join(",", data ?? Array.Empty<string>()));
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -32,9 +32,9 @@ IEnumerable<object[]> ITestDataSource.GetData(MethodInfo methodInfo)
return _data;
}

string ITestDataSource.GetDisplayName(MethodInfo methodInfo, object[] data)
string ITestDataSource.GetDisplayName(MethodInfo methodInfo, object?[]? data)
{
return GetDisplayName(methodInfo, (T1)data[0]);
return GetDisplayName(methodInfo, (T1)data![0]!);
}
}

Expand Down Expand Up @@ -63,9 +63,9 @@ IEnumerable<object[]> ITestDataSource.GetData(MethodInfo methodInfo)
return _data;
}

string ITestDataSource.GetDisplayName(MethodInfo methodInfo, object[] data)
string ITestDataSource.GetDisplayName(MethodInfo methodInfo, object?[]? data)
{
return GetDisplayName(methodInfo, (T1)data[0], (T2)data[1]);
return GetDisplayName(methodInfo, (T1)data![0]!, (T2)data![1]!);
}
}

Expand Down Expand Up @@ -95,9 +95,9 @@ IEnumerable<object[]> ITestDataSource.GetData(MethodInfo methodInfo)
return _data;
}

string ITestDataSource.GetDisplayName(MethodInfo methodInfo, object[] data)
string ITestDataSource.GetDisplayName(MethodInfo methodInfo, object?[]? data)
{
return GetDisplayName(methodInfo, (T1)data[0], (T2)data[1], (T3)data[2]);
return GetDisplayName(methodInfo, (T1)data![0]!, (T2)data![1]!, (T3)data![2]!);
}
}

Expand Down Expand Up @@ -128,8 +128,8 @@ IEnumerable<object[]> ITestDataSource.GetData(MethodInfo methodInfo)
return _data;
}

string ITestDataSource.GetDisplayName(MethodInfo methodInfo, object[] data)
string ITestDataSource.GetDisplayName(MethodInfo methodInfo, object?[]? data)
{
return GetDisplayName(methodInfo, (T1)data[0], (T2)data[1], (T3)data[2], (T4)data[3]);
return GetDisplayName(methodInfo, (T1)data![0]!, (T2)data![1]!, (T3)data![2]!, (T4)data![3]!);
}
}
Loading