diff --git a/test/Microsoft.TestPlatform.Acceptance.IntegrationTests/ArgumentProcessorTests.cs b/test/Microsoft.TestPlatform.Acceptance.IntegrationTests/ArgumentProcessorTests.cs
index 8f2fe25d03..1fe030eab1 100644
--- a/test/Microsoft.TestPlatform.Acceptance.IntegrationTests/ArgumentProcessorTests.cs
+++ b/test/Microsoft.TestPlatform.Acceptance.IntegrationTests/ArgumentProcessorTests.cs
@@ -11,7 +11,7 @@ public class ArgumentProcessorTests : AcceptanceTestBase
{
[TestMethod]
- [NetCoreTargetFrameworkDataSource]
+ [TestMatrix(testHost: Net)]
public void PassingNoArgumentsToVsTestConsoleShouldPrintHelpMessage(RunnerInfo runnerInfo)
{
SetTestEnvironment(_testEnvironment, runnerInfo);
@@ -32,7 +32,7 @@ public void PassingNoArgumentsToVsTestConsoleShouldPrintHelpMessage(RunnerInfo r
}
[TestMethod]
- [NetCoreTargetFrameworkDataSource]
+ [TestMatrix(testHost: Net)]
public void PassingInvalidArgumentsToVsTestConsoleShouldNotPrintHelpMessage(RunnerInfo runnerInfo)
{
SetTestEnvironment(_testEnvironment, runnerInfo);
diff --git a/test/Microsoft.TestPlatform.Acceptance.IntegrationTests/BlameDataCollectorTests.cs b/test/Microsoft.TestPlatform.Acceptance.IntegrationTests/BlameDataCollectorTests.cs
index b8f9f08e99..eafbcef5b2 100644
--- a/test/Microsoft.TestPlatform.Acceptance.IntegrationTests/BlameDataCollectorTests.cs
+++ b/test/Microsoft.TestPlatform.Acceptance.IntegrationTests/BlameDataCollectorTests.cs
@@ -40,7 +40,7 @@ public BlameDataCollectorTests()
[TestMethod]
[TestCategory("Windows-Review")]
- [NetCoreTargetFrameworkDataSource]
+ [TestMatrix(testHost: Net)]
public void BlameDataCollectorShouldGiveCorrectTestCaseName(RunnerInfo runnerInfo)
{
SetTestEnvironment(_testEnvironment, runnerInfo);
@@ -55,8 +55,8 @@ public void BlameDataCollectorShouldGiveCorrectTestCaseName(RunnerInfo runnerInf
[TestMethod]
[TestCategory("Windows-Review")]
- [NetFullTargetFrameworkDataSource(useCoreRunner: false)]
- [NetCoreTargetFrameworkDataSource(useDesktopRunner: false)]
+ [TestMatrix(console: NetFx, testHost: NetFx)]
+ [TestMatrix(console: Net, testHost: Net)]
public void BlameDataCollectorShouldOutputDumpFile(RunnerInfo runnerInfo)
{
@@ -79,7 +79,7 @@ public void BlameDataCollectorShouldOutputDumpFile(RunnerInfo runnerInfo)
[TestMethod]
[TestCategory("Windows-Review")]
- [NetCoreTargetFrameworkDataSource(useDesktopRunner: false)]
+ [TestMatrix(console: Net, testHost: Net)]
public void BlameDataCollectorShouldNotOutputDumpFileWhenNoCrashOccurs(RunnerInfo runnerInfo)
{
@@ -103,7 +103,7 @@ public void BlameDataCollectorShouldNotOutputDumpFileWhenNoCrashOccurs(RunnerInf
[TestMethod]
[TestCategory("Windows-Review")]
// This tests .net runner and .net framework runner, together with .net framework testhost.
- [NetFullTargetFrameworkDataSource]
+ [TestMatrix(testHost: NetFx)]
public void BlameDataCollectorShouldOutputDumpFileWhenNoCrashOccursButCollectAlwaysIsEnabled(RunnerInfo runnerInfo)
{
@@ -125,7 +125,7 @@ public void BlameDataCollectorShouldOutputDumpFileWhenNoCrashOccursButCollectAlw
}
[TestMethod]
- [NetCoreRunner("net481;net11.0")]
+ [TestMatrix(console: Net)]
public void HangDumpOnTimeout(RunnerInfo runnerInfo)
{
SetTestEnvironment(_testEnvironment, runnerInfo);
@@ -147,7 +147,7 @@ public void HangDumpOnTimeout(RunnerInfo runnerInfo)
[TestMethod]
// .NET testhost does not support dump on exit
- [NetFullTargetFrameworkDataSource]
+ [TestMatrix(testHost: NetFx)]
public void CrashDumpWhenThereIsNoTimeout(RunnerInfo runnerInfo)
{
@@ -169,7 +169,7 @@ public void CrashDumpWhenThereIsNoTimeout(RunnerInfo runnerInfo)
[TestMethod]
// .NET tfms do not support dump on exit, but runner does
- [NetFullTargetFrameworkDataSource]
+ [TestMatrix(testHost: NetFx)]
public void CrashDumpOnExit(RunnerInfo runnerInfo)
{
@@ -190,7 +190,7 @@ public void CrashDumpOnExit(RunnerInfo runnerInfo)
}
[TestMethod]
- [NetCoreRunner("net481;net11.0")]
+ [TestMatrix(console: Net)]
public void CrashDumpOnStackOverflow(RunnerInfo runnerInfo)
{
SetTestEnvironment(_testEnvironment, runnerInfo);
@@ -210,7 +210,7 @@ public void CrashDumpOnStackOverflow(RunnerInfo runnerInfo)
}
[TestMethod]
- [NetCoreRunner(NET)]
+ [TestMatrix(console: Net, testHost: Net)]
public void CrashDumpChildProcesses(RunnerInfo runnerInfo)
{
SetTestEnvironment(_testEnvironment, runnerInfo);
@@ -224,7 +224,7 @@ public void CrashDumpChildProcesses(RunnerInfo runnerInfo)
}
[TestMethod]
- [NetCoreRunner("net481;net11.0")]
+ [TestMatrix(console: Net)]
public void HangDumpChildProcesses(RunnerInfo runnerInfo)
{
SetTestEnvironment(_testEnvironment, runnerInfo);
@@ -240,7 +240,7 @@ public void HangDumpChildProcesses(RunnerInfo runnerInfo)
[TestMethod]
[DoNotParallelize] // Modifies the test asset's runtimeconfig.json on disk.
- [NetCoreTargetFrameworkDataSource]
+ [TestMatrix(testHost: Net)]
public void HangDumpShouldNotHangWhenTestHostFailsToStart(RunnerInfo runnerInfo)
{
// When testhost can't start (e.g. wrong runtime version), the inactivity timer
@@ -281,8 +281,8 @@ public void HangDumpShouldNotHangWhenTestHostFailsToStart(RunnerInfo runnerInfo)
[TestMethod]
[TestCategory("Windows-Review")]
[DoNotParallelize] // Installs/uninstalls procdump as machine-wide postmortem debugger via HKLM registry.
- [NetFullTargetFrameworkDataSource]
- [NetCoreTargetFrameworkDataSource]
+ [TestMatrix(testHost: NetFx)]
+ [TestMatrix(testHost: Net)]
public void BlameDataCollectorAeDebuggerShouldCollectDump(RunnerInfo runnerInfo)
{
// For convenience skip locally, but never skip in CI. If this cannot pass in CI we are not testing it at all.
diff --git a/test/Microsoft.TestPlatform.Acceptance.IntegrationTests/CodeCoverageTests.cs b/test/Microsoft.TestPlatform.Acceptance.IntegrationTests/CodeCoverageTests.cs
index a7f4994e6e..39e11f0767 100644
--- a/test/Microsoft.TestPlatform.Acceptance.IntegrationTests/CodeCoverageTests.cs
+++ b/test/Microsoft.TestPlatform.Acceptance.IntegrationTests/CodeCoverageTests.cs
@@ -48,8 +48,8 @@ public enum SettingsType
public class CodeCoverageTests : CodeCoverageAcceptanceTestBase
{
[TestMethod]
- [NetFullTargetFrameworkDataSource(useDesktopRunner: false)]
- [NetCoreTargetFrameworkDataSource(useDesktopRunner: false)]
+ [TestMatrix(console: Net, testHost: NetFx)]
+ [TestMatrix(console: Net, testHost: Net)]
public void CollectCodeCoverageWithCollectOptionForx86(RunnerInfo runnerInfo)
{
var parameters = new TestParameters()
@@ -67,8 +67,8 @@ public void CollectCodeCoverageWithCollectOptionForx86(RunnerInfo runnerInfo)
}
[TestMethod]
- [NetFullTargetFrameworkDataSource(useDesktopRunner: false)]
- [NetCoreTargetFrameworkDataSource(useDesktopRunner: false)]
+ [TestMatrix(console: Net, testHost: NetFx)]
+ [TestMatrix(console: Net, testHost: Net)]
public void CollectCodeCoverageWithCollectOptionForx64(RunnerInfo runnerInfo)
{
var parameters = new TestParameters()
@@ -86,8 +86,8 @@ public void CollectCodeCoverageWithCollectOptionForx64(RunnerInfo runnerInfo)
}
[TestMethod]
- [NetFullTargetFrameworkDataSource(useDesktopRunner: false)]
- [NetCoreTargetFrameworkDataSource(useDesktopRunner: false)]
+ [TestMatrix(console: Net, testHost: NetFx)]
+ [TestMatrix(console: Net, testHost: Net)]
public void CollectCodeCoverageX86WithRunSettings(RunnerInfo runnerInfo)
{
var parameters = new TestParameters()
@@ -105,8 +105,8 @@ public void CollectCodeCoverageX86WithRunSettings(RunnerInfo runnerInfo)
}
[TestMethod]
- [NetFullTargetFrameworkDataSource(useDesktopRunner: false)]
- [NetCoreTargetFrameworkDataSource(useDesktopRunner: false)]
+ [TestMatrix(console: Net, testHost: NetFx)]
+ [TestMatrix(console: Net, testHost: Net)]
public void CollectCodeCoverageX64WithRunSettings(RunnerInfo runnerInfo)
{
var parameters = new TestParameters()
@@ -124,8 +124,8 @@ public void CollectCodeCoverageX64WithRunSettings(RunnerInfo runnerInfo)
}
[TestMethod]
- [NetFullTargetFrameworkDataSource(useDesktopRunner: false)]
- [NetCoreTargetFrameworkDataSource(useDesktopRunner: false)]
+ [TestMatrix(console: Net, testHost: NetFx)]
+ [TestMatrix(console: Net, testHost: Net)]
public void CodeCoverageShouldAvoidExclusionsX86(RunnerInfo runnerInfo)
{
var parameters = new TestParameters()
@@ -146,8 +146,8 @@ public void CodeCoverageShouldAvoidExclusionsX86(RunnerInfo runnerInfo)
}
[TestMethod]
- [NetFullTargetFrameworkDataSource(useDesktopRunner: false)]
- [NetCoreTargetFrameworkDataSource(useDesktopRunner: false)]
+ [TestMatrix(console: Net, testHost: NetFx)]
+ [TestMatrix(console: Net, testHost: Net)]
public void CodeCoverageShouldAvoidExclusionsX64(RunnerInfo runnerInfo)
{
var parameters = new TestParameters()
@@ -168,8 +168,8 @@ public void CodeCoverageShouldAvoidExclusionsX64(RunnerInfo runnerInfo)
}
[TestMethod]
- [NetFullTargetFrameworkDataSource(useDesktopRunner: false)]
- [NetCoreTargetFrameworkDataSource(useDesktopRunner: false)]
+ [TestMatrix(console: Net, testHost: NetFx)]
+ [TestMatrix(console: Net, testHost: Net)]
public void CollectCodeCoverageSpecifyOutputFormatXml(RunnerInfo runnerInfo)
{
var parameters = new TestParameters()
@@ -187,8 +187,8 @@ public void CollectCodeCoverageSpecifyOutputFormatXml(RunnerInfo runnerInfo)
}
[TestMethod]
- [NetFullTargetFrameworkDataSource(useDesktopRunner: false)]
- [NetCoreTargetFrameworkDataSource(useDesktopRunner: false)]
+ [TestMatrix(console: Net, testHost: NetFx)]
+ [TestMatrix(console: Net, testHost: Net)]
public void CollectCodeCoverageSpecifyOutputFormatCoberturaOverrideRunSettingsConfiguration(RunnerInfo runnerInfo)
{
var parameters = new TestParameters()
diff --git a/test/Microsoft.TestPlatform.Acceptance.IntegrationTests/CreateNoNewWindowTests.cs b/test/Microsoft.TestPlatform.Acceptance.IntegrationTests/CreateNoNewWindowTests.cs
index 5122bec933..cfdeab3c83 100644
--- a/test/Microsoft.TestPlatform.Acceptance.IntegrationTests/CreateNoNewWindowTests.cs
+++ b/test/Microsoft.TestPlatform.Acceptance.IntegrationTests/CreateNoNewWindowTests.cs
@@ -14,7 +14,7 @@ public class CreateNoNewWindowTests : AcceptanceTestBase
[TestMethod]
// CreateNoNewWindow maps to the Windows-only process CreateNoWindow flag and only runs on the .NET Framework testhost.
[TestCategory("Windows-Review")]
- [NetFullTargetFrameworkDataSource(inIsolation: true, inProcess: false)]
+ [TestMatrix(testHost: NetFx)]
public void WhenCreateNoNewWindowIsFalse_DiagShowsCreateNoWindowFalse(RunnerInfo runnerInfo)
{
SetTestEnvironment(_testEnvironment, runnerInfo);
@@ -38,7 +38,7 @@ public void WhenCreateNoNewWindowIsFalse_DiagShowsCreateNoWindowFalse(RunnerInfo
[TestMethod]
// CreateNoNewWindow maps to the Windows-only process CreateNoWindow flag and only runs on the .NET Framework testhost.
[TestCategory("Windows-Review")]
- [NetFullTargetFrameworkDataSource(inIsolation: true, inProcess: false)]
+ [TestMatrix(testHost: NetFx)]
public void WhenCreateNoNewWindowIsTrue_DiagShowsCreateNoWindowTrue(RunnerInfo runnerInfo)
{
SetTestEnvironment(_testEnvironment, runnerInfo);
@@ -62,7 +62,7 @@ public void WhenCreateNoNewWindowIsTrue_DiagShowsCreateNoWindowTrue(RunnerInfo r
[TestMethod]
// CreateNoNewWindow maps to the Windows-only process CreateNoWindow flag and only runs on the .NET Framework testhost.
[TestCategory("Windows-Review")]
- [NetFullTargetFrameworkDataSource(inIsolation: true, inProcess: false)]
+ [TestMatrix(testHost: NetFx)]
public void WhenCreateNoNewWindowIsNotSet_DefaultIsTrue(RunnerInfo runnerInfo)
{
SetTestEnvironment(_testEnvironment, runnerInfo);
diff --git a/test/Microsoft.TestPlatform.Acceptance.IntegrationTests/DataCollectionTests.cs b/test/Microsoft.TestPlatform.Acceptance.IntegrationTests/DataCollectionTests.cs
index af0b35edcc..f9d8995ba3 100644
--- a/test/Microsoft.TestPlatform.Acceptance.IntegrationTests/DataCollectionTests.cs
+++ b/test/Microsoft.TestPlatform.Acceptance.IntegrationTests/DataCollectionTests.cs
@@ -20,7 +20,7 @@ namespace Microsoft.TestPlatform.AcceptanceTests;
public class DataCollectionTests : AcceptanceTestBase
{
[TestMethod]
- [NetCoreTargetFrameworkDataSource]
+ [TestMatrix(testHost: Net)]
public void ExecuteTestsWithDataCollection(RunnerInfo runnerInfo)
{
SetTestEnvironment(_testEnvironment, runnerInfo);
@@ -43,7 +43,7 @@ public void ExecuteTestsWithDataCollection(RunnerInfo runnerInfo)
}
[TestMethod]
- [NetCoreTargetFrameworkDataSource]
+ [TestMatrix(testHost: Net)]
public void ExecuteTestsWithDataCollectionUsingCollectArgument(RunnerInfo runnerInfo)
{
SetTestEnvironment(_testEnvironment, runnerInfo);
@@ -66,7 +66,7 @@ public void ExecuteTestsWithDataCollectionUsingCollectArgument(RunnerInfo runner
}
[TestMethod]
- [NetCoreTargetFrameworkDataSource]
+ [TestMatrix(testHost: Net)]
public void DataCollectorAssemblyLoadingShouldNotThrowErrorForNetCore(RunnerInfo runnerInfo)
{
SetTestEnvironment(_testEnvironment, runnerInfo);
@@ -80,7 +80,7 @@ public void DataCollectorAssemblyLoadingShouldNotThrowErrorForNetCore(RunnerInfo
[TestMethod]
// .NET Framework testhost-specific assembly loading; not applicable to the netcore testhost.
[TestCategory("Windows-Review")]
- [NetFullTargetFrameworkDataSource]
+ [TestMatrix(testHost: NetFx)]
public void DataCollectorAssemblyLoadingShouldNotThrowErrorForFullFramework(RunnerInfo runnerInfo)
{
SetTestEnvironment(_testEnvironment, runnerInfo);
@@ -92,7 +92,7 @@ public void DataCollectorAssemblyLoadingShouldNotThrowErrorForFullFramework(Runn
}
[TestMethod]
- [NetCoreTargetFrameworkDataSource]
+ [TestMatrix(testHost: Net)]
public void DataCollectorAttachmentProcessor(RunnerInfo runnerInfo)
{
SetTestEnvironment(_testEnvironment, runnerInfo);
diff --git a/test/Microsoft.TestPlatform.Acceptance.IntegrationTests/DataCollectorTests.Coverlet.cs b/test/Microsoft.TestPlatform.Acceptance.IntegrationTests/DataCollectorTests.Coverlet.cs
index 70ee8055db..848a6e55a7 100644
--- a/test/Microsoft.TestPlatform.Acceptance.IntegrationTests/DataCollectorTests.Coverlet.cs
+++ b/test/Microsoft.TestPlatform.Acceptance.IntegrationTests/DataCollectorTests.Coverlet.cs
@@ -14,7 +14,7 @@ namespace Microsoft.TestPlatform.AcceptanceTests;
public class DataCollectorTestsCoverlets : AcceptanceTestBase
{
[TestMethod]
- [NetCoreRunner(HOST_NET)]
+ [TestMatrix(console: Net, testHost: Net)]
public void RunCoverletCoverage(RunnerInfo runnerInfo)
{
SetTestEnvironment(_testEnvironment, runnerInfo);
diff --git a/test/Microsoft.TestPlatform.Acceptance.IntegrationTests/DebugAssertTests.cs b/test/Microsoft.TestPlatform.Acceptance.IntegrationTests/DebugAssertTests.cs
index d6578bb9d8..23f59682f0 100644
--- a/test/Microsoft.TestPlatform.Acceptance.IntegrationTests/DebugAssertTests.cs
+++ b/test/Microsoft.TestPlatform.Acceptance.IntegrationTests/DebugAssertTests.cs
@@ -11,7 +11,7 @@ public class DebugAssertTests : AcceptanceTestBase
{
[TestMethod]
// this is core only, there is nothing we can do about TPDebug.Assert crashing the process on framework
- [NetCoreTargetFrameworkDataSource(useDesktopRunner: false)]
+ [TestMatrix(console: Net, testHost: Net)]
public void RunningTestWithAFailingDebugAssertDoesNotCrashTheHostingProcess(RunnerInfo runnerInfo)
{
// when debugging this test in case it starts failing, be aware that the default behavior of TPDebug.Assert
diff --git a/test/Microsoft.TestPlatform.Acceptance.IntegrationTests/DifferentTestFrameworkSimpleTests.cs b/test/Microsoft.TestPlatform.Acceptance.IntegrationTests/DifferentTestFrameworkSimpleTests.cs
index db1d2a9e00..d1520a787a 100644
--- a/test/Microsoft.TestPlatform.Acceptance.IntegrationTests/DifferentTestFrameworkSimpleTests.cs
+++ b/test/Microsoft.TestPlatform.Acceptance.IntegrationTests/DifferentTestFrameworkSimpleTests.cs
@@ -15,7 +15,7 @@ namespace Microsoft.TestPlatform.AcceptanceTests;
public class DifferentTestFrameworkSimpleTests : AcceptanceTestBase
{
[TestMethod]
- [NetFullTargetFrameworkDataSource(inIsolation: true, inProcess: true)]
+ [TestMatrix(testHost: NetFx, inProcess: true)]
public void NonDllRunAllTestExecution(RunnerInfo runnerInfo)
{
// This used to test Chutzpah, to prove that we can run tests that are not shipped in dlls.
@@ -36,7 +36,7 @@ public void NonDllRunAllTestExecution(RunnerInfo runnerInfo)
[TestMethod]
// vstest.console is x64 now, but x86 run "in process" run should still succeed by being run in x86 testhost
// Skip .NET (Core) tests because we test them below.
- [NetFullTargetFrameworkDataSource(inIsolation: true, inProcess: true, useCoreRunner: false)]
+ [TestMatrix(console: NetFx, testHost: NetFx, inProcess: true)]
public void CPPRunAllTestExecutionNetFramework(RunnerInfo runnerInfo)
{
SetTestEnvironment(_testEnvironment, runnerInfo);
@@ -48,7 +48,7 @@ public void CPPRunAllTestExecutionNetFramework(RunnerInfo runnerInfo)
[TestCategory("Windows-Review")]
// vstest.console is 64-bit now, run in process to test the 64-bit native dll
// Skip .NET (Core) tests because we test them below.
- [NetFullTargetFrameworkDataSource(inIsolation: true, inProcess: true, useCoreRunner: false)]
+ [TestMatrix(console: NetFx, testHost: NetFx, inProcess: true)]
public void CPPRunAllTestExecutionPlatformx64NetFramework(RunnerInfo runnerInfo)
{
SetTestEnvironment(_testEnvironment, runnerInfo);
@@ -60,7 +60,7 @@ public void CPPRunAllTestExecutionPlatformx64NetFramework(RunnerInfo runnerInfo)
// C++ tests cannot run in .NET Framework host under .NET Core, because we only ship .NET Standard CPP adapter in .NET Core
// We also don't test x86 for .NET Core, because the resolver there does not switch between x86 and x64 correctly, it just uses the parent process bitness.
// We run this on netcore31 and not the default netcore21 because netcore31 is the minimum tfm that has the runtime features we need, such as additionaldeps.
- [NetCoreTargetFrameworkDataSource(useDesktopRunner: false, useCoreRunner: true)]
+ [TestMatrix(console: Net, testHost: Net)]
public void CPPRunAllTestExecutionPlatformx64Net(RunnerInfo runnerInfo)
{
SetTestEnvironment(_testEnvironment, runnerInfo);
@@ -68,8 +68,8 @@ public void CPPRunAllTestExecutionPlatformx64Net(RunnerInfo runnerInfo)
}
[TestMethod]
- [NetFullTargetFrameworkDataSource(inIsolation: true, inProcess: true)]
- [NetCoreTargetFrameworkDataSource]
+ [TestMatrix(testHost: NetFx, inProcess: true)]
+ [TestMatrix(testHost: Net)]
public void NUnitRunAllTestExecution(RunnerInfo runnerInfo)
{
SetTestEnvironment(_testEnvironment, runnerInfo);
@@ -84,8 +84,8 @@ public void NUnitRunAllTestExecution(RunnerInfo runnerInfo)
}
[TestMethod]
- [NetFullTargetFrameworkDataSource(inIsolation: true, inProcess: true)]
- [NetCoreTargetFrameworkDataSource]
+ [TestMatrix(testHost: NetFx, inProcess: true)]
+ [TestMatrix(testHost: Net)]
public void XUnitRunAllTestExecution(RunnerInfo runnerInfo)
{
SetTestEnvironment(_testEnvironment, runnerInfo);
diff --git a/test/Microsoft.TestPlatform.Acceptance.IntegrationTests/DisableAppdomainTests.cs b/test/Microsoft.TestPlatform.Acceptance.IntegrationTests/DisableAppdomainTests.cs
index 1e18cf6e7f..15c0ca72ec 100644
--- a/test/Microsoft.TestPlatform.Acceptance.IntegrationTests/DisableAppdomainTests.cs
+++ b/test/Microsoft.TestPlatform.Acceptance.IntegrationTests/DisableAppdomainTests.cs
@@ -17,7 +17,7 @@ public class DisableAppdomainTests : AcceptanceTestBase
[TestMethod]
[TestCategory("Windows")]
// Run in .NET Framework testhost, disabling appdomain will force running out of process in all cases.
- [NetFullTargetFrameworkDataSource(inProcess: true)]
+ [TestMatrix(testHost: NetFx, inProcess: true)]
public void DisableAppdomainTest(RunnerInfo runnerInfo)
{
SetTestEnvironment(_testEnvironment, runnerInfo);
@@ -30,7 +30,7 @@ public void DisableAppdomainTest(RunnerInfo runnerInfo)
[TestMethod]
[TestCategory("Windows")]
- [NetFullTargetFrameworkDataSource]
+ [TestMatrix(testHost: NetFx)]
public void NewtonSoftDependencyWithDisableAppdomainTest(RunnerInfo runnerInfo)
{
SetTestEnvironment(_testEnvironment, runnerInfo);
diff --git a/test/Microsoft.TestPlatform.Acceptance.IntegrationTests/DiscoveryTests.cs b/test/Microsoft.TestPlatform.Acceptance.IntegrationTests/DiscoveryTests.cs
index 23d047a76f..81f4687965 100644
--- a/test/Microsoft.TestPlatform.Acceptance.IntegrationTests/DiscoveryTests.cs
+++ b/test/Microsoft.TestPlatform.Acceptance.IntegrationTests/DiscoveryTests.cs
@@ -18,7 +18,7 @@ namespace Microsoft.TestPlatform.AcceptanceTests;
public class DiscoveryTests : AcceptanceTestBase
{
[TestMethod]
- [NetCoreTargetFrameworkDataSource]
+ [TestMatrix(testHost: Net)]
public void DiscoverAllTests(RunnerInfo runnerInfo)
{
SetTestEnvironment(_testEnvironment, runnerInfo);
@@ -31,7 +31,7 @@ public void DiscoverAllTests(RunnerInfo runnerInfo)
}
[TestMethod]
- [NetCoreTargetFrameworkDataSource]
+ [TestMatrix(testHost: Net)]
[TestCategory("Smoke")]
public void MultipleSourcesDiscoverAllTests(RunnerInfo runnerInfo)
{
@@ -53,7 +53,7 @@ public void MultipleSourcesDiscoverAllTests(RunnerInfo runnerInfo)
}
[TestMethod]
- [NetCoreTargetFrameworkDataSource]
+ [TestMatrix(testHost: Net)]
public void DiscoverFullyQualifiedTests(RunnerInfo runnerInfo)
{
var dummyFilePath = Path.Combine(TempDirectory.Path, $"{Guid.NewGuid()}.txt");
@@ -71,7 +71,7 @@ public void DiscoverFullyQualifiedTests(RunnerInfo runnerInfo)
}
[TestMethod]
- [NetCoreTargetFrameworkDataSource]
+ [TestMatrix(testHost: Net)]
public void DiscoverTestsShouldShowProperWarningIfNoTestsOnTestCaseFilter(RunnerInfo runnerInfo)
{
SetTestEnvironment(_testEnvironment, runnerInfo);
@@ -115,7 +115,7 @@ public void TypesToLoadAttributeTests()
}
[TestMethod]
- [NetCoreTargetFrameworkDataSource]
+ [TestMatrix(testHost: Net)]
public void DiscoverTestsShouldSucceedWhenAtLeastOneDllFindsRuntimeProvider(RunnerInfo runnerInfo)
{
SetTestEnvironment(_testEnvironment, runnerInfo);
diff --git a/test/Microsoft.TestPlatform.Acceptance.IntegrationTests/DotnetTestMSBuildOutputTests.cs b/test/Microsoft.TestPlatform.Acceptance.IntegrationTests/DotnetTestMSBuildOutputTests.cs
index 7602917081..103ed4eac4 100644
--- a/test/Microsoft.TestPlatform.Acceptance.IntegrationTests/DotnetTestMSBuildOutputTests.cs
+++ b/test/Microsoft.TestPlatform.Acceptance.IntegrationTests/DotnetTestMSBuildOutputTests.cs
@@ -18,7 +18,7 @@ public class DotnetTestMSBuildOutputTests : AcceptanceTestBase
[TestMethod]
// Special characters (~, !, |, %) don't survive the MSBuildLogger output round-trip on non-Windows terminals.
[TestCategory("Windows-Review")]
- [NetCoreTargetFrameworkDataSource(useDesktopRunner: false)]
+ [TestMatrix(console: Net, testHost: Net)]
public void MSBuildLoggerCanBeEnabledByBuildPropertyAndDoesNotEatSpecialChars(RunnerInfo runnerInfo)
{
SetTestEnvironment(_testEnvironment, runnerInfo);
@@ -54,7 +54,7 @@ public void MSBuildLoggerCanBeEnabledByBuildPropertyAndDoesNotEatSpecialChars(Ru
}
[TestMethod]
- [NetCoreTargetFrameworkDataSource(useDesktopRunner: false)]
+ [TestMatrix(console: Net, testHost: Net)]
public void MSBuildLoggerCanBeDisabledByBuildProperty(RunnerInfo runnerInfo)
{
SetTestEnvironment(_testEnvironment, runnerInfo);
@@ -72,7 +72,7 @@ public void MSBuildLoggerCanBeDisabledByBuildProperty(RunnerInfo runnerInfo)
[TestMethod]
- [NetCoreTargetFrameworkDataSource(useDesktopRunner: false)]
+ [TestMatrix(console: Net, testHost: Net)]
public void MSBuildLoggerCanBeDisabledByEnvironmentVariableProperty(RunnerInfo runnerInfo)
{
SetTestEnvironment(_testEnvironment, runnerInfo);
diff --git a/test/Microsoft.TestPlatform.Acceptance.IntegrationTests/DotnetTestTests.cs b/test/Microsoft.TestPlatform.Acceptance.IntegrationTests/DotnetTestTests.cs
index d833cad647..005fa0e3c3 100644
--- a/test/Microsoft.TestPlatform.Acceptance.IntegrationTests/DotnetTestTests.cs
+++ b/test/Microsoft.TestPlatform.Acceptance.IntegrationTests/DotnetTestTests.cs
@@ -18,7 +18,7 @@ private static string GetFinalVersion(string version)
}
[TestMethod]
- [NetCoreTargetFrameworkDataSource(useDesktopRunner: false)]
+ [TestMatrix(console: Net, testHost: Net)]
[TestCategory("Smoke")]
public void RunDotnetTestWithCsproj(RunnerInfo runnerInfo)
{
@@ -34,7 +34,7 @@ public void RunDotnetTestWithCsproj(RunnerInfo runnerInfo)
}
[TestMethod]
- [NetCoreTargetFrameworkDataSource(useDesktopRunner: false)]
+ [TestMatrix(console: Net, testHost: Net)]
public void RunDotnetTestWithDll(RunnerInfo runnerInfo)
{
SetTestEnvironment(_testEnvironment, runnerInfo);
@@ -49,7 +49,7 @@ public void RunDotnetTestWithDll(RunnerInfo runnerInfo)
}
[TestMethod]
- [NetCoreTargetFrameworkDataSource(useDesktopRunner: false)]
+ [TestMatrix(console: Net, testHost: Net)]
public void RunDotnetTestWithCsprojPassInlineSettings(RunnerInfo runnerInfo)
{
SetTestEnvironment(_testEnvironment, runnerInfo);
@@ -64,7 +64,7 @@ public void RunDotnetTestWithCsprojPassInlineSettings(RunnerInfo runnerInfo)
}
[TestMethod]
- [NetCoreTargetFrameworkDataSource(useDesktopRunner: false)]
+ [TestMatrix(console: Net, testHost: Net)]
public void RunDotnetTestWithDllPassInlineSettings(RunnerInfo runnerInfo)
{
SetTestEnvironment(_testEnvironment, runnerInfo);
@@ -77,7 +77,7 @@ public void RunDotnetTestWithDllPassInlineSettings(RunnerInfo runnerInfo)
}
[TestMethod]
- [NetCoreTargetFrameworkDataSource(useDesktopRunner: false)]
+ [TestMatrix(console: Net, testHost: Net)]
[Ignore("TODO: This scenario is broken in real environment as well (running with shipped `dotnet test`. Old tests (before arcade) use location of vstest.console that have more dlls in place than what we ship, and they make it work.")]
public void RunDotnetTestWithNativeDll(RunnerInfo runnerInfo)
{
@@ -93,7 +93,7 @@ public void RunDotnetTestWithNativeDll(RunnerInfo runnerInfo)
}
[TestMethod]
- [NetCoreTargetFrameworkDataSource(useDesktopRunner: false)]
+ [TestMatrix(console: Net, testHost: Net)]
public void RunDotnetTestAndSeeOutputFromConsoleWriteLine(RunnerInfo runnerInfo)
{
SetTestEnvironment(_testEnvironment, runnerInfo);
diff --git a/test/Microsoft.TestPlatform.Acceptance.IntegrationTests/EventLogCollectorTests.cs b/test/Microsoft.TestPlatform.Acceptance.IntegrationTests/EventLogCollectorTests.cs
index 4eeb03dcfb..8f0b10c4ca 100644
--- a/test/Microsoft.TestPlatform.Acceptance.IntegrationTests/EventLogCollectorTests.cs
+++ b/test/Microsoft.TestPlatform.Acceptance.IntegrationTests/EventLogCollectorTests.cs
@@ -20,7 +20,7 @@ public class EventLogCollectorTests : AcceptanceTestBase
[Ignore]
[TestMethod]
[TestCategory("Windows-Review")]
- [NetFullTargetFrameworkDataSource]
+ [TestMatrix(testHost: NetFx)]
public void EventLogDataCollectorShoudCreateLogFileHavingEvents(RunnerInfo runnerInfo)
{
SetTestEnvironment(_testEnvironment, runnerInfo);
@@ -41,7 +41,7 @@ public void EventLogDataCollectorShoudCreateLogFileHavingEvents(RunnerInfo runne
[TestMethod]
[TestCategory("Windows-Review")]
- [NetFullTargetFrameworkDataSource]
+ [TestMatrix(testHost: NetFx)]
public void EventLogDataCollectorShoudCreateLogFileWithoutEventsIfEventsAreNotLogged(RunnerInfo runnerInfo)
{
SetTestEnvironment(_testEnvironment, runnerInfo);
diff --git a/test/Microsoft.TestPlatform.Acceptance.IntegrationTests/ExecutionTests.cs b/test/Microsoft.TestPlatform.Acceptance.IntegrationTests/ExecutionTests.cs
index 920a1c7f9b..41b8daa30a 100644
--- a/test/Microsoft.TestPlatform.Acceptance.IntegrationTests/ExecutionTests.cs
+++ b/test/Microsoft.TestPlatform.Acceptance.IntegrationTests/ExecutionTests.cs
@@ -19,7 +19,7 @@ public class ExecutionTests : AcceptanceTestBase
[TestMethod]
// Compatibility matrix includes the .NET Framework runner/testhost, which is not available on Linux/macOS.
[TestCategory("Windows-Review")]
- [MSTestCompatibilityDataSource]
+ [CompatibilityMatrix(CompatScenario.Adapter)]
public void RunMultipleTestAssemblies(RunnerInfo runnerInfo)
{
SetTestEnvironment(_testEnvironment, runnerInfo);
@@ -37,7 +37,7 @@ public void RunMultipleTestAssemblies(RunnerInfo runnerInfo)
[TestMethod]
// Compatibility matrix includes the .NET Framework runner/testhost, which is not available on Linux/macOS.
[TestCategory("Windows-Review")]
- [TestHostCompatibilityDataSource]
+ [CompatibilityMatrix(CompatScenario.TestHost)]
public void RunMultipleMSTestAssembliesOnVstestConsoleAndTesthostCombinations(RunnerInfo runnerInfo)
{
SetTestEnvironment(_testEnvironment, runnerInfo);
@@ -55,7 +55,7 @@ public void RunMultipleMSTestAssembliesOnVstestConsoleAndTesthostCombinations(Ru
[TestMethod]
// Compatibility matrix includes the .NET Framework runner/testhost, which is not available on Linux/macOS.
[TestCategory("Windows-Review")]
- [RunnerCompatibilityDataSource]
+ [CompatibilityMatrix(CompatScenario.VSTestConsole)]
public void RunMultipleMSTestAssembliesOnVstestConsoleAndTesthostCombinations2(RunnerInfo runnerInfo)
{
SetTestEnvironment(_testEnvironment, runnerInfo);
@@ -70,7 +70,7 @@ public void RunMultipleMSTestAssembliesOnVstestConsoleAndTesthostCombinations2(R
[TestMethod]
[TestCategory("Smoke")]
- [NetCoreTargetFrameworkDataSource]
+ [TestMatrix(testHost: Net)]
public void RunMultipleMSTestAssembliesOnVstestConsoleAndTesthostCombinations3(RunnerInfo runnerInfo)
{
SetTestEnvironment(_testEnvironment, runnerInfo);
@@ -87,7 +87,7 @@ public void RunMultipleMSTestAssembliesOnVstestConsoleAndTesthostCombinations3(R
// the two respective versions together (e.g. latest xunit and latest mstest), but does using two different test
// frameworks have any added value over using 2 mstest dlls?
[TestMethod]
- [NetCoreTargetFrameworkDataSource]
+ [TestMatrix(testHost: Net)]
public void RunMultipleTestAssembliesWithoutTestAdapterPath(RunnerInfo runnerInfo)
{
SetTestEnvironment(_testEnvironment, runnerInfo);
@@ -106,7 +106,7 @@ public void RunMultipleTestAssembliesWithoutTestAdapterPath(RunnerInfo runnerInf
// and after --arch feature implementation we won't find correct muxer on CI.
[TestCategory("Windows")]
[TestMethod]
- [MSTestCompatibilityDataSource]
+ [CompatibilityMatrix(CompatScenario.Adapter)]
public void RunMultipleTestAssembliesInParallel(RunnerInfo runnerInfo)
{
SetTestEnvironment(_testEnvironment, runnerInfo);
@@ -133,7 +133,7 @@ public void RunMultipleTestAssembliesInParallel(RunnerInfo runnerInfo)
}
[TestMethod]
- [NetCoreTargetFrameworkDataSource]
+ [TestMatrix(testHost: Net)]
public void TestSessionTimeOutTests(RunnerInfo runnerInfo)
{
SetTestEnvironment(_testEnvironment, runnerInfo);
@@ -154,7 +154,7 @@ public void TestSessionTimeOutTests(RunnerInfo runnerInfo)
}
[TestMethod]
- [NetCoreTargetFrameworkDataSource]
+ [TestMatrix(testHost: Net)]
public void WorkingDirectoryIsSourceDirectory(RunnerInfo runnerInfo)
{
SetTestEnvironment(_testEnvironment, runnerInfo);
@@ -173,8 +173,8 @@ public void WorkingDirectoryIsSourceDirectory(RunnerInfo runnerInfo)
// Asserts the testhost-specific stack overflow message; the .NET Framework variant requires the
// .NET Framework testhost, which is only available on Windows.
[TestCategory("Windows-Review")]
- [NetFullTargetFrameworkDataSource]
- [NetCoreTargetFrameworkDataSource]
+ [TestMatrix(testHost: NetFx)]
+ [TestMatrix(testHost: Net)]
public void StackOverflowExceptionShouldBeLoggedToConsoleAndDiagLogFile(RunnerInfo runnerInfo)
{
SetTestEnvironment(_testEnvironment, runnerInfo);
@@ -201,8 +201,8 @@ public void StackOverflowExceptionShouldBeLoggedToConsoleAndDiagLogFile(RunnerIn
// Asserts the testhost-specific unhandled exception message; the .NET Framework variant requires the
// .NET Framework testhost, which is only available on Windows.
[TestCategory("Windows-Review")]
- [NetFullTargetFrameworkDataSource]
- [NetCoreTargetFrameworkDataSource]
+ [TestMatrix(testHost: NetFx)]
+ [TestMatrix(testHost: Net)]
public void UnhandleExceptionExceptionShouldBeLoggedToDiagLogFile(RunnerInfo runnerInfo)
{
SetTestEnvironment(_testEnvironment, runnerInfo);
@@ -224,7 +224,7 @@ public void UnhandleExceptionExceptionShouldBeLoggedToDiagLogFile(RunnerInfo run
[TestMethod]
[TestCategory("Windows-Review")]
- [NetFullTargetFrameworkDataSource]
+ [TestMatrix(testHost: NetFx)]
public void IncompatibleSourcesWarningShouldBeDisplayedInTheConsoleWhenGivenIncompatibleX86andX64Dll(RunnerInfo runnerInfo)
{
SetTestEnvironment(_testEnvironment, runnerInfo);
@@ -246,7 +246,7 @@ public void IncompatibleSourcesWarningShouldBeDisplayedInTheConsoleWhenGivenInco
[TestMethod]
[TestCategory("Windows-Review")]
- [NetFullTargetFrameworkDataSource]
+ [TestMatrix(testHost: NetFx)]
public void NoIncompatibleSourcesWarningShouldBeDisplayedInTheConsoleWhenGivenSingleX86Dll(RunnerInfo runnerInfo)
{
SetTestEnvironment(_testEnvironment, runnerInfo);
@@ -266,7 +266,7 @@ public void NoIncompatibleSourcesWarningShouldBeDisplayedInTheConsoleWhenGivenSi
[TestMethod]
[TestCategory("Windows-Review")]
- [NetFullTargetFrameworkDataSource]
+ [TestMatrix(testHost: NetFx)]
public void IncompatibleSourcesWarningShouldBeDisplayedInTheConsoleOnlyWhenRunningIn32BitOS(RunnerInfo runnerInfo)
{
SetTestEnvironment(_testEnvironment, runnerInfo);
@@ -295,7 +295,7 @@ public void IncompatibleSourcesWarningShouldBeDisplayedInTheConsoleOnlyWhenRunni
}
[TestMethod]
- [NetCoreTargetFrameworkDataSource]
+ [TestMatrix(testHost: Net)]
public void ExitCodeShouldReturnOneWhenTreatNoTestsAsErrorParameterSetToTrueAndNoTestMatchesFilter(RunnerInfo runnerInfo)
{
SetTestEnvironment(_testEnvironment, runnerInfo);
@@ -314,7 +314,7 @@ public void ExitCodeShouldReturnOneWhenTreatNoTestsAsErrorParameterSetToTrueAndN
}
[TestMethod]
- [NetCoreTargetFrameworkDataSource]
+ [TestMatrix(testHost: Net)]
public void ExitCodeShouldReturnZeroWhenTreatNoTestsAsErrorParameterSetToFalseAndNoTestMatchesFilter(RunnerInfo runnerInfo)
{
SetTestEnvironment(_testEnvironment, runnerInfo);
@@ -333,7 +333,7 @@ public void ExitCodeShouldReturnZeroWhenTreatNoTestsAsErrorParameterSetToFalseAn
[TestMethod]
[TestCategory("Windows")]
- [NetFullTargetFrameworkDataSource]
+ [TestMatrix(testHost: NetFx)]
public void ExitCodeShouldNotDependOnTreatNoTestsAsErrorTrueValueWhenThereAreAnyTestsToRun(RunnerInfo runnerInfo)
{
SetTestEnvironment(_testEnvironment, runnerInfo);
@@ -351,7 +351,7 @@ public void ExitCodeShouldNotDependOnTreatNoTestsAsErrorTrueValueWhenThereAreAny
[TestMethod]
[TestCategory("Windows")]
- [NetFullTargetFrameworkDataSource]
+ [TestMatrix(testHost: NetFx)]
public void ExitCodeShouldNotDependOnFailTreatNoTestsAsErrorFalseValueWhenThereAreAnyTestsToRun(RunnerInfo runnerInfo)
{
SetTestEnvironment(_testEnvironment, runnerInfo);
@@ -367,7 +367,7 @@ public void ExitCodeShouldNotDependOnFailTreatNoTestsAsErrorFalseValueWhenThereA
}
[TestMethod]
- [NetCoreTargetFrameworkDataSource]
+ [TestMatrix(testHost: Net)]
public void ExecuteTestsShouldSucceedWhenAtLeastOneDllFindsRuntimeProvider(RunnerInfo runnerInfo)
{
SetTestEnvironment(_testEnvironment, runnerInfo);
@@ -389,7 +389,7 @@ public void ExecuteTestsShouldSucceedWhenAtLeastOneDllFindsRuntimeProvider(Runne
[TestMethod]
// This is a built-in assembly filter test. It changes with vstest.version, so testing against 1 version of console is enough.
- [NetCoreTargetFrameworkDataSource(useDesktopRunner: false)]
+ [TestMatrix(console: Net, testHost: Net)]
public void RunXunitTestsWhenProvidingAllDllsInBin(RunnerInfo runnerInfo)
{
// This is the default filter of AzDo VSTest task:
@@ -414,7 +414,7 @@ public void RunXunitTestsWhenProvidingAllDllsInBin(RunnerInfo runnerInfo)
[TestMethod]
// This is a built-in assembly filter test. It changes with vstest.version, so testing against 1 version of console is enough.
- [NetCoreTargetFrameworkDataSource(useDesktopRunner: false)]
+ [TestMatrix(console: Net, testHost: Net)]
public void RunMstestTestsWhenProvidingAllDllsInBin(RunnerInfo runnerInfo)
{
// This is the default filter of AzDo VSTest task:
@@ -440,7 +440,7 @@ public void RunMstestTestsWhenProvidingAllDllsInBin(RunnerInfo runnerInfo)
[TestMethod]
// This is a built-in assembly filter test. It changes with vstest.version, so testing against 1 version of console is enough.
- [NetCoreTargetFrameworkDataSource(useDesktopRunner: false)]
+ [TestMatrix(console: Net, testHost: Net)]
public void RunNunitTestsWhenProvidingAllDllsInBin(RunnerInfo runnerInfo)
{
// This is the default filter of AzDo VSTest task:
@@ -465,7 +465,7 @@ public void RunNunitTestsWhenProvidingAllDllsInBin(RunnerInfo runnerInfo)
}
[TestMethod]
- [NetCoreTargetFrameworkDataSource(useDesktopRunner: false)]
+ [TestMatrix(console: Net, testHost: Net)]
public void RunTestsWhenProvidingJustPlatformDllsFailsTheRun(RunnerInfo runnerInfo)
{
// This is the default filter of AzDo VSTest task:
diff --git a/test/Microsoft.TestPlatform.Acceptance.IntegrationTests/ExecutionThreadApartmentStateTests.cs b/test/Microsoft.TestPlatform.Acceptance.IntegrationTests/ExecutionThreadApartmentStateTests.cs
index 05163ddd73..f0550ba485 100644
--- a/test/Microsoft.TestPlatform.Acceptance.IntegrationTests/ExecutionThreadApartmentStateTests.cs
+++ b/test/Microsoft.TestPlatform.Acceptance.IntegrationTests/ExecutionThreadApartmentStateTests.cs
@@ -11,7 +11,7 @@ namespace Microsoft.TestPlatform.AcceptanceTests;
public class ExecutionThreadApartmentStateTests : AcceptanceTestBase
{
[TestMethod]
- [NetFullTargetFrameworkDataSource(inIsolation: true, inProcess: true)]
+ [TestMatrix(testHost: NetFx, inProcess: true)]
public void UITestShouldPassIfApartmentStateIsSTA(RunnerInfo runnerInfo)
{
SetTestEnvironment(_testEnvironment, runnerInfo);
@@ -24,7 +24,7 @@ public void UITestShouldPassIfApartmentStateIsSTA(RunnerInfo runnerInfo)
}
[TestMethod]
- [NetCoreTargetFrameworkDataSource]
+ [TestMatrix(testHost: Net)]
public void WarningShouldBeShownWhenValueIsSTAForNetCore(RunnerInfo runnerInfo)
{
SetTestEnvironment(_testEnvironment, runnerInfo);
@@ -39,7 +39,7 @@ public void WarningShouldBeShownWhenValueIsSTAForNetCore(RunnerInfo runnerInfo)
}
[TestMethod]
- [NetFullTargetFrameworkDataSource(inIsolation: true, inProcess: true)]
+ [TestMatrix(testHost: NetFx, inProcess: true)]
public void UITestShouldFailWhenDefaultApartmentStateIsMTA(RunnerInfo runnerInfo)
{
SetTestEnvironment(_testEnvironment, runnerInfo);
@@ -54,7 +54,7 @@ public void UITestShouldFailWhenDefaultApartmentStateIsMTA(RunnerInfo runnerInfo
[Ignore(@"Issue with TestSessionTimeout: https://github.com/Microsoft/vstest/issues/980")]
[TestMethod]
- [NetFullTargetFrameworkDataSource(inIsolation: true, inProcess: true)]
+ [TestMatrix(testHost: NetFx, inProcess: true)]
public void CancelTestExectionShouldWorkWhenApartmentStateIsSTA(RunnerInfo runnerInfo)
{
SetTestEnvironment(_testEnvironment, runnerInfo);
diff --git a/test/Microsoft.TestPlatform.Acceptance.IntegrationTests/FilePatternParserTests.cs b/test/Microsoft.TestPlatform.Acceptance.IntegrationTests/FilePatternParserTests.cs
index 4365382eb3..509773212c 100644
--- a/test/Microsoft.TestPlatform.Acceptance.IntegrationTests/FilePatternParserTests.cs
+++ b/test/Microsoft.TestPlatform.Acceptance.IntegrationTests/FilePatternParserTests.cs
@@ -12,7 +12,7 @@ namespace Microsoft.TestPlatform.AcceptanceTests;
public class FilePatternParserTests : AcceptanceTestBase
{
[TestMethod]
- [NetCoreTargetFrameworkDataSource]
+ [TestMatrix(testHost: Net)]
public void WildCardPatternShouldCorrectlyWorkOnFiles(RunnerInfo runnerInfo)
{
SetTestEnvironment(_testEnvironment, runnerInfo);
@@ -31,7 +31,7 @@ public void WildCardPatternShouldCorrectlyWorkOnFiles(RunnerInfo runnerInfo)
}
[TestMethod]
- [NetCoreTargetFrameworkDataSource]
+ [TestMatrix(testHost: Net)]
public void WildCardPatternShouldCorrectlyWorkOnArbitraryDepthDirectories(RunnerInfo runnerInfo)
{
SetTestEnvironment(_testEnvironment, runnerInfo);
@@ -56,7 +56,7 @@ public void WildCardPatternShouldCorrectlyWorkOnArbitraryDepthDirectories(Runner
}
[TestMethod]
- [NetCoreTargetFrameworkDataSource]
+ [TestMatrix(testHost: Net)]
public void WildCardPatternShouldCorrectlyWorkForRelativeAssemblyPath(RunnerInfo runnerInfo)
{
SetTestEnvironment(_testEnvironment, runnerInfo);
@@ -81,7 +81,7 @@ public void WildCardPatternShouldCorrectlyWorkForRelativeAssemblyPath(RunnerInfo
}
[TestMethod]
- [NetCoreTargetFrameworkDataSource]
+ [TestMatrix(testHost: Net)]
public void WildCardPatternShouldCorrectlyWorkOnMultipleFiles(RunnerInfo runnerInfo)
{
SetTestEnvironment(_testEnvironment, runnerInfo);
diff --git a/test/Microsoft.TestPlatform.Acceptance.IntegrationTests/FrameworkTests.cs b/test/Microsoft.TestPlatform.Acceptance.IntegrationTests/FrameworkTests.cs
index 24a4da4add..e470bb6a26 100644
--- a/test/Microsoft.TestPlatform.Acceptance.IntegrationTests/FrameworkTests.cs
+++ b/test/Microsoft.TestPlatform.Acceptance.IntegrationTests/FrameworkTests.cs
@@ -13,7 +13,7 @@ public class FrameworkTests : AcceptanceTestBase
{
[TestMethod]
- [NetCoreTargetFrameworkDataSource]
+ [TestMatrix(testHost: Net)]
public void FrameworkArgumentShouldWork(RunnerInfo runnerInfo)
{
SetTestEnvironment(_testEnvironment, runnerInfo);
@@ -26,7 +26,7 @@ public void FrameworkArgumentShouldWork(RunnerInfo runnerInfo)
}
[TestMethod]
- [NetCoreTargetFrameworkDataSource]
+ [TestMatrix(testHost: Net)]
public void FrameworkShortNameArgumentShouldWork(RunnerInfo runnerInfo)
{
SetTestEnvironment(_testEnvironment, runnerInfo);
@@ -41,8 +41,8 @@ public void FrameworkShortNameArgumentShouldWork(RunnerInfo runnerInfo)
[TestMethod]
// framework runner not available on Linux
[TestCategory("Windows-Review")]
- [NetFullTargetFrameworkDataSource(useCoreRunner: false)]
- //[NetCoreTargetFrameworkDataSource]
+ [TestMatrix(console: NetFx, testHost: NetFx)]
+ //[TestMatrix(testHost: Net)]
public void OnWrongFrameworkPassedTestRunShouldNotRun(RunnerInfo runnerInfo)
{
SetTestEnvironment(_testEnvironment, runnerInfo);
@@ -65,8 +65,8 @@ public void OnWrongFrameworkPassedTestRunShouldNotRun(RunnerInfo runnerInfo)
}
[TestMethod]
- [NetFullTargetFrameworkDataSource]
- [NetCoreTargetFrameworkDataSource]
+ [TestMatrix(testHost: NetFx)]
+ [TestMatrix(testHost: Net)]
// The .NET (Core) runner produces a different framework-incompatible warning on non-Windows, so keep this Windows-only.
[TestCategory("Windows-Review")]
public void RunSpecificTestsShouldWorkWithFrameworkInCompatibleWarning(RunnerInfo runnerInfo)
diff --git a/test/Microsoft.TestPlatform.Acceptance.IntegrationTests/GlobalUsings.cs b/test/Microsoft.TestPlatform.Acceptance.IntegrationTests/GlobalUsings.cs
new file mode 100644
index 0000000000..6e5cf8264e
--- /dev/null
+++ b/test/Microsoft.TestPlatform.Acceptance.IntegrationTests/GlobalUsings.cs
@@ -0,0 +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.
+
+// Brings the Target enum members (Both, NetFx, Net) into scope unqualified so [TestMatrix] call sites
+// read as e.g. [TestMatrix(console: NetFx, testHost: Net)]. The console:/testHost: parameter names
+// disambiguate which axis each value applies to.
+global using static Microsoft.TestPlatform.TestUtilities.Target;
diff --git a/test/Microsoft.TestPlatform.Acceptance.IntegrationTests/ListExtensionsTests.cs b/test/Microsoft.TestPlatform.Acceptance.IntegrationTests/ListExtensionsTests.cs
index 10b445b904..cf027268cb 100644
--- a/test/Microsoft.TestPlatform.Acceptance.IntegrationTests/ListExtensionsTests.cs
+++ b/test/Microsoft.TestPlatform.Acceptance.IntegrationTests/ListExtensionsTests.cs
@@ -12,7 +12,7 @@ namespace Microsoft.TestPlatform.AcceptanceTests;
public class ListExtensionsTests : AcceptanceTestBase
{
[TestMethod]
- [NetFullTargetFrameworkDataSource(inIsolation: false, inProcess: true)]
+ [TestMatrix(testHost: NetFx, inIsolation: false, inProcess: true)]
public void ListDiscoverersShouldShowInboxDiscoverers(RunnerInfo runnerInfo)
{
SetTestEnvironment(_testEnvironment, runnerInfo);
@@ -33,7 +33,7 @@ public void ListDiscoverersShouldShowInboxDiscoverers(RunnerInfo runnerInfo)
}
[TestMethod]
- [NetFullTargetFrameworkDataSource(inIsolation: false, inProcess: true)]
+ [TestMatrix(testHost: NetFx, inIsolation: false, inProcess: true)]
public void ListExecutorsShouldShowInboxExecutors(RunnerInfo runnerInfo)
{
SetTestEnvironment(_testEnvironment, runnerInfo);
@@ -56,7 +56,7 @@ public void ListExecutorsShouldShowInboxExecutors(RunnerInfo runnerInfo)
}
[TestMethod]
- [NetFullTargetFrameworkDataSource(inIsolation: false, inProcess: true)]
+ [TestMatrix(testHost: NetFx, inIsolation: false, inProcess: true)]
public void ListLoggersShouldShowInboxLoggers(RunnerInfo runnerInfo)
{
SetTestEnvironment(_testEnvironment, runnerInfo);
@@ -68,7 +68,7 @@ public void ListLoggersShouldShowInboxLoggers(RunnerInfo runnerInfo)
}
[TestMethod]
- [NetFullTargetFrameworkDataSource(inIsolation: false, inProcess: true)]
+ [TestMatrix(testHost: NetFx, inIsolation: false, inProcess: true)]
public void ListSettingsProvidersShouldShowInboxSettingsProviders(RunnerInfo runnerInfo)
{
SetTestEnvironment(_testEnvironment, runnerInfo);
diff --git a/test/Microsoft.TestPlatform.Acceptance.IntegrationTests/LoggerTests.cs b/test/Microsoft.TestPlatform.Acceptance.IntegrationTests/LoggerTests.cs
index 86717def09..a26da60d03 100644
--- a/test/Microsoft.TestPlatform.Acceptance.IntegrationTests/LoggerTests.cs
+++ b/test/Microsoft.TestPlatform.Acceptance.IntegrationTests/LoggerTests.cs
@@ -16,7 +16,7 @@ namespace Microsoft.TestPlatform.AcceptanceTests;
public class LoggerTests : AcceptanceTestBase
{
[TestMethod]
- [NetCoreTargetFrameworkDataSource]
+ [TestMatrix(testHost: Net)]
public void TrxLoggerWithFriendlyNameShouldProperlyOverwriteFile(RunnerInfo runnerInfo)
{
SetTestEnvironment(_testEnvironment, runnerInfo);
@@ -36,7 +36,7 @@ public void TrxLoggerWithFriendlyNameShouldProperlyOverwriteFile(RunnerInfo runn
}
[TestMethod]
- [NetCoreTargetFrameworkDataSource]
+ [TestMatrix(testHost: Net)]
public void HtmlLoggerWithFriendlyNameShouldProperlyOverwriteFile(RunnerInfo runnerInfo)
{
SetTestEnvironment(_testEnvironment, runnerInfo);
@@ -56,7 +56,7 @@ public void HtmlLoggerWithFriendlyNameShouldProperlyOverwriteFile(RunnerInfo run
}
[TestMethod]
- [NetCoreTargetFrameworkDataSource]
+ [TestMatrix(testHost: Net)]
public void HtmlLoggerWithFriendlyNameContainsExpectedContent(RunnerInfo runnerInfo)
{
SetTestEnvironment(_testEnvironment, runnerInfo);
@@ -83,7 +83,7 @@ private static XmlDocument LoadReport(string htmlLogFilePath)
}
[TestMethod]
- [NetCoreTargetFrameworkDataSource]
+ [TestMatrix(testHost: Net)]
public void TrxLoggerWithExecutorUriShouldProperlyOverwriteFile(RunnerInfo runnerInfo)
{
SetTestEnvironment(_testEnvironment, runnerInfo);
@@ -103,7 +103,7 @@ public void TrxLoggerWithExecutorUriShouldProperlyOverwriteFile(RunnerInfo runne
}
[TestMethod]
- [NetCoreTargetFrameworkDataSource]
+ [TestMatrix(testHost: Net)]
public void TrxLoggerWithLogFilePrefixShouldGenerateMultipleTrx(RunnerInfo runnerInfo)
{
SetTestEnvironment(_testEnvironment, runnerInfo);
@@ -123,7 +123,7 @@ public void TrxLoggerWithLogFilePrefixShouldGenerateMultipleTrx(RunnerInfo runne
}
[TestMethod]
- [NetCoreTargetFrameworkDataSource]
+ [TestMatrix(testHost: Net)]
public void HtmlLoggerWithExecutorUriShouldProperlyOverwriteFile(RunnerInfo runnerInfo)
{
SetTestEnvironment(_testEnvironment, runnerInfo);
@@ -143,7 +143,7 @@ public void HtmlLoggerWithExecutorUriShouldProperlyOverwriteFile(RunnerInfo runn
}
[TestMethod]
- [NetCoreTargetFrameworkDataSource]
+ [TestMatrix(testHost: Net)]
public void TrxLoggerResultSummaryOutcomeValueShouldBeFailedIfNoTestsExecutedAndTreatNoTestsAsErrorIsTrue(RunnerInfo runnerInfo)
{
SetTestEnvironment(_testEnvironment, runnerInfo);
@@ -165,7 +165,7 @@ public void TrxLoggerResultSummaryOutcomeValueShouldBeFailedIfNoTestsExecutedAnd
}
[TestMethod]
- [NetCoreTargetFrameworkDataSource]
+ [TestMatrix(testHost: Net)]
public void TrxLoggerResultSummaryOutcomeValueShouldNotChangeIfNoTestsExecutedAndTreatNoTestsAsErrorIsFalse(RunnerInfo runnerInfo)
{
SetTestEnvironment(_testEnvironment, runnerInfo);
@@ -187,7 +187,7 @@ public void TrxLoggerResultSummaryOutcomeValueShouldNotChangeIfNoTestsExecutedAn
}
[TestMethod]
- [NetCoreTargetFrameworkDataSource]
+ [TestMatrix(testHost: Net)]
public void TrxLoggerResultSummaryOutcomeValueShouldBeFailedWhenDataCollectorLogsError(RunnerInfo runnerInfo)
{
SetTestEnvironment(_testEnvironment, runnerInfo);
@@ -215,7 +215,7 @@ public void TrxLoggerResultSummaryOutcomeValueShouldBeFailedWhenDataCollectorLog
}
[TestMethod]
- [NetCoreTargetFrameworkDataSource]
+ [TestMatrix(testHost: Net)]
public void TrxLoggerResultSummaryOutcomeValueShouldBeCompletedWhenDataCollectorLogsErrorAndTreatErrorMessagesAsWarningsIsTrue(RunnerInfo runnerInfo)
{
SetTestEnvironment(_testEnvironment, runnerInfo);
@@ -307,7 +307,7 @@ private static void IsFileAndContentEqual(string filePath)
}
[TestMethod]
- [NetCoreTargetFrameworkDataSource]
+ [TestMatrix(testHost: Net)]
public void TrxLoggerShouldNotDoubleCountDataDrivenTestResults(RunnerInfo runnerInfo)
{
// Regression test for https://github.com/microsoft/vstest/issues/15643
@@ -338,7 +338,7 @@ public void TrxLoggerShouldNotDoubleCountDataDrivenTestResults(RunnerInfo runner
}
[TestMethod]
- [NetCoreTargetFrameworkDataSource]
+ [TestMatrix(testHost: Net)]
public void TrxLoggerShouldPlaceTrxFileInSubdirectoryWhenLogFileNameContainsPath(RunnerInfo runnerInfo)
{
// Regression test for https://github.com/microsoft/vstest/issues/15271
diff --git a/test/Microsoft.TestPlatform.Acceptance.IntegrationTests/MissingTestSdkTests.cs b/test/Microsoft.TestPlatform.Acceptance.IntegrationTests/MissingTestSdkTests.cs
index 1cd06e6b33..01b28a48ae 100644
--- a/test/Microsoft.TestPlatform.Acceptance.IntegrationTests/MissingTestSdkTests.cs
+++ b/test/Microsoft.TestPlatform.Acceptance.IntegrationTests/MissingTestSdkTests.cs
@@ -19,7 +19,7 @@ public class MissingTestSdkTests : AcceptanceTestBase
// silently run on the built-in testhost shipped next to the runner (that fallback is for native C++ runners) - the
// run should fail and tell the user to reference Microsoft.NET.Test.Sdk.
[TestMethod]
- [NetCoreTargetFrameworkDataSource(useDesktopRunner: false, useCoreRunner: true)]
+ [TestMatrix(console: Net, testHost: Net)]
public void RunningManagedProjectWithoutTestSdkShouldFailAndSuggestTestSdk(RunnerInfo runnerInfo)
{
SetTestEnvironment(_testEnvironment, runnerInfo);
@@ -42,7 +42,7 @@ public void RunningManagedProjectWithoutTestSdkShouldFailAndSuggestTestSdk(Runne
// build C++ locally. Windows-only (the asset is a Windows native dll).
[TestMethod]
[TestCategory("Windows-Review")]
- [NetCoreTargetFrameworkDataSource(useDesktopRunner: false, useCoreRunner: true)]
+ [TestMatrix(console: Net, testHost: Net)]
public void RunningNativeCppProjectWithoutTestSdkShouldUseTheBuiltInTesthostFallback(RunnerInfo runnerInfo)
{
SetTestEnvironment(_testEnvironment, runnerInfo);
diff --git a/test/Microsoft.TestPlatform.Acceptance.IntegrationTests/MultitargetingTestHostTests.cs b/test/Microsoft.TestPlatform.Acceptance.IntegrationTests/MultitargetingTestHostTests.cs
index 163238e783..3cb9cf66ac 100644
--- a/test/Microsoft.TestPlatform.Acceptance.IntegrationTests/MultitargetingTestHostTests.cs
+++ b/test/Microsoft.TestPlatform.Acceptance.IntegrationTests/MultitargetingTestHostTests.cs
@@ -17,8 +17,8 @@ public class MultitargetingTestHostTests : AcceptanceTestBase
[TestCategory("Windows-Review")]
// the underlying test is using xUnit to avoid AppDomain enhancements in MSTest that make this pass even without multitargetting
// xUnit supports net452 onwards, so that is why this starts at net452, I also don't test all framework versions
- [NetCoreRunner(NETFX)]
- [NetFrameworkRunner(NETFX)]
+ [TestMatrix(console: Net, testHost: NetFx)]
+ [TestMatrix(console: NetFx, testHost: NetFx)]
public void TestRunInATesthostThatTargetsTheirChosenNETFramework(RunnerInfo runnerInfo)
{
SetTestEnvironment(_testEnvironment, runnerInfo);
diff --git a/test/Microsoft.TestPlatform.Acceptance.IntegrationTests/PlatformTests.cs b/test/Microsoft.TestPlatform.Acceptance.IntegrationTests/PlatformTests.cs
index e9a5eb2dad..84fe0551d2 100644
--- a/test/Microsoft.TestPlatform.Acceptance.IntegrationTests/PlatformTests.cs
+++ b/test/Microsoft.TestPlatform.Acceptance.IntegrationTests/PlatformTests.cs
@@ -15,8 +15,8 @@ public class PlatformTests : AcceptanceTestBase
/// The run test execution with platform x64.
///
[TestMethod]
- [NetFullTargetFrameworkDataSource]
- [NetCoreTargetFrameworkDataSource]
+ [TestMatrix(testHost: NetFx)]
+ [TestMatrix(testHost: Net)]
public void RunTestExecutionWithPlatformx64(RunnerInfo runnerInfo)
{
SetTestEnvironment(_testEnvironment, runnerInfo);
@@ -29,8 +29,8 @@ public void RunTestExecutionWithPlatformx64(RunnerInfo runnerInfo)
/// The run test execution with platform x86.
///
[TestMethod]
- [NetFullTargetFrameworkDataSource]
- [NetCoreTargetFrameworkDataSource]
+ [TestMatrix(testHost: NetFx)]
+ [TestMatrix(testHost: Net)]
public void RunTestExecutionWithPlatformx86(RunnerInfo runnerInfo)
{
SetTestEnvironment(_testEnvironment, runnerInfo);
diff --git a/test/Microsoft.TestPlatform.Acceptance.IntegrationTests/PortableNugetPackageTests.cs b/test/Microsoft.TestPlatform.Acceptance.IntegrationTests/PortableNugetPackageTests.cs
index 1b42e0b8f0..862eed16ac 100644
--- a/test/Microsoft.TestPlatform.Acceptance.IntegrationTests/PortableNugetPackageTests.cs
+++ b/test/Microsoft.TestPlatform.Acceptance.IntegrationTests/PortableNugetPackageTests.cs
@@ -24,7 +24,7 @@ public static void ClassInit(TestContext _)
}
[TestMethod]
- [NetCoreTargetFrameworkDataSource]
+ [TestMatrix(testHost: Net)]
public void RunMultipleTestAssemblies(RunnerInfo runnerInfo)
{
SetTestEnvironment(_testEnvironment, runnerInfo);
@@ -38,7 +38,7 @@ public void RunMultipleTestAssemblies(RunnerInfo runnerInfo)
}
[TestMethod]
- [NetCoreTargetFrameworkDataSource]
+ [TestMatrix(testHost: Net)]
public void DiscoverAllTests(RunnerInfo runnerInfo)
{
SetTestEnvironment(_testEnvironment, runnerInfo);
diff --git a/test/Microsoft.TestPlatform.Acceptance.IntegrationTests/ProcessesInteractionTests.cs b/test/Microsoft.TestPlatform.Acceptance.IntegrationTests/ProcessesInteractionTests.cs
index 9fe2537ebe..6f1034fec7 100644
--- a/test/Microsoft.TestPlatform.Acceptance.IntegrationTests/ProcessesInteractionTests.cs
+++ b/test/Microsoft.TestPlatform.Acceptance.IntegrationTests/ProcessesInteractionTests.cs
@@ -17,7 +17,7 @@ public class ProcessesInteractionTests : AcceptanceTestBase
/// flush its output and error streams).See https://github.com/microsoft/vstest/issues/3375
///
[TestMethod]
- [NetCoreTargetFrameworkDataSource]
+ [TestMatrix(testHost: Net)]
public void WhenTestHostProcessExitsBecauseTheTargetedRuntimeIsNoFoundThenTheMessageIsCapturedFromTheErrorOutput(RunnerInfo runnerInfo)
{
// Arrange
diff --git a/test/Microsoft.TestPlatform.Acceptance.IntegrationTests/RecursiveResourcesLookupTests.cs b/test/Microsoft.TestPlatform.Acceptance.IntegrationTests/RecursiveResourcesLookupTests.cs
index 6bdf038ef8..f6e2736c1b 100644
--- a/test/Microsoft.TestPlatform.Acceptance.IntegrationTests/RecursiveResourcesLookupTests.cs
+++ b/test/Microsoft.TestPlatform.Acceptance.IntegrationTests/RecursiveResourcesLookupTests.cs
@@ -14,7 +14,7 @@ public class RecursiveResourcesLookupTests : AcceptanceTestBase
// two different runners. The NetFull data source is empty on Linux/macOS.
[TestCategory("Windows-Review")]
[Ignore("Temporarily ignore until solving https://github.com/microsoft/testfx/issues/2692")]
- [NetFullTargetFrameworkDataSource(useCoreRunner: false)]
+ [TestMatrix(console: NetFx, testHost: NetFx)]
public void RunsToCompletionWhenJapaneseResourcesAreLookedUpForMSCorLib(RunnerInfo runnerInfo)
{
SetTestEnvironment(_testEnvironment, runnerInfo);
diff --git a/test/Microsoft.TestPlatform.Acceptance.IntegrationTests/ResultsDirectoryTests.cs b/test/Microsoft.TestPlatform.Acceptance.IntegrationTests/ResultsDirectoryTests.cs
index 76e6937772..d6e5c5d5cf 100644
--- a/test/Microsoft.TestPlatform.Acceptance.IntegrationTests/ResultsDirectoryTests.cs
+++ b/test/Microsoft.TestPlatform.Acceptance.IntegrationTests/ResultsDirectoryTests.cs
@@ -13,7 +13,7 @@ namespace Microsoft.TestPlatform.AcceptanceTests;
public class ResultsDirectoryTests : AcceptanceTestBase
{
[TestMethod]
- [NetCoreTargetFrameworkDataSource]
+ [TestMatrix(testHost: Net)]
public void TrxFileShouldBeCreatedInResultsDirectory(RunnerInfo runnerInfo)
{
SetTestEnvironment(_testEnvironment, runnerInfo);
@@ -33,7 +33,7 @@ public void TrxFileShouldBeCreatedInResultsDirectory(RunnerInfo runnerInfo)
}
[TestMethod]
- [NetCoreTargetFrameworkDataSource]
+ [TestMatrix(testHost: Net)]
public void ResultsDirectoryRelativePathShouldWork(RunnerInfo runnerInfo)
{
SetTestEnvironment(_testEnvironment, runnerInfo);
diff --git a/test/Microsoft.TestPlatform.Acceptance.IntegrationTests/RunsettingsTests.cs b/test/Microsoft.TestPlatform.Acceptance.IntegrationTests/RunsettingsTests.cs
index 2816b7e9b4..0930dddc81 100644
--- a/test/Microsoft.TestPlatform.Acceptance.IntegrationTests/RunsettingsTests.cs
+++ b/test/Microsoft.TestPlatform.Acceptance.IntegrationTests/RunsettingsTests.cs
@@ -20,8 +20,8 @@ public class RunsettingsTests : AcceptanceTestBase
/// Command line run settings should have high precedence among settings file, cli runsettings and cli switches
///
[TestMethod]
- [NetFullTargetFrameworkDataSource]
- [NetCoreTargetFrameworkDataSource]
+ [TestMatrix(testHost: NetFx)]
+ [TestMatrix(testHost: Net)]
public void CommandLineRunSettingsShouldWinAmongAllOptions(RunnerInfo runnerInfo)
{
SetTestEnvironment(_testEnvironment, runnerInfo);
@@ -60,8 +60,8 @@ public void CommandLineRunSettingsShouldWinAmongAllOptions(RunnerInfo runnerInfo
/// Command line run settings should have high precedence between cli runsettings and cli switches.
///
[TestMethod]
- [NetFullTargetFrameworkDataSource]
- [NetCoreTargetFrameworkDataSource]
+ [TestMatrix(testHost: NetFx)]
+ [TestMatrix(testHost: Net)]
public void CLIRunsettingsShouldWinBetweenCLISwitchesAndCLIRunsettings(RunnerInfo runnerInfo)
{
SetTestEnvironment(_testEnvironment, runnerInfo);
@@ -94,8 +94,8 @@ public void CLIRunsettingsShouldWinBetweenCLISwitchesAndCLIRunsettings(RunnerInf
/// Command line switches should have high precedence if runsetting file and command line switch specified
///
[TestMethod]
- [NetFullTargetFrameworkDataSource]
- [NetCoreTargetFrameworkDataSource]
+ [TestMatrix(testHost: NetFx)]
+ [TestMatrix(testHost: Net)]
public void CommandLineSwitchesShouldWinBetweenSettingsFileAndCommandLineSwitches(RunnerInfo runnerInfo)
{
SetTestEnvironment(_testEnvironment, runnerInfo);
@@ -123,8 +123,8 @@ public void CommandLineSwitchesShouldWinBetweenSettingsFileAndCommandLineSwitche
#endregion
[TestMethod]
- [NetFullTargetFrameworkDataSource]
- [NetCoreTargetFrameworkDataSource]
+ [TestMatrix(testHost: NetFx)]
+ [TestMatrix(testHost: Net)]
public void RunSettingsWithoutParallelAndPlatformX86(RunnerInfo runnerInfo)
{
SetTestEnvironment(_testEnvironment, runnerInfo);
@@ -148,8 +148,8 @@ public void RunSettingsWithoutParallelAndPlatformX86(RunnerInfo runnerInfo)
}
[TestMethod]
- [NetFullTargetFrameworkDataSource]
- [NetCoreTargetFrameworkDataSource]
+ [TestMatrix(testHost: NetFx)]
+ [TestMatrix(testHost: Net)]
public void RunSettingsParamsAsArguments(RunnerInfo runnerInfo)
{
SetTestEnvironment(_testEnvironment, runnerInfo);
@@ -175,8 +175,8 @@ public void RunSettingsParamsAsArguments(RunnerInfo runnerInfo)
}
[TestMethod]
- [NetFullTargetFrameworkDataSource]
- [NetCoreTargetFrameworkDataSource]
+ [TestMatrix(testHost: NetFx)]
+ [TestMatrix(testHost: Net)]
public void RunSettingsAndRunSettingsParamsAsArguments(RunnerInfo runnerInfo)
{
SetTestEnvironment(_testEnvironment, runnerInfo);
@@ -210,8 +210,8 @@ public void RunSettingsAndRunSettingsParamsAsArguments(RunnerInfo runnerInfo)
}
[TestMethod]
- [NetFullTargetFrameworkDataSource]
- [NetCoreTargetFrameworkDataSource]
+ [TestMatrix(testHost: NetFx)]
+ [TestMatrix(testHost: Net)]
public void RunSettingsWithParallelAndPlatformX64(RunnerInfo runnerInfo)
{
SetTestEnvironment(_testEnvironment, runnerInfo);
@@ -231,8 +231,8 @@ public void RunSettingsWithParallelAndPlatformX64(RunnerInfo runnerInfo)
}
[TestMethod]
- [NetFullTargetFrameworkDataSourceAttribute(inIsolation: true, inProcess: true)]
- [NetCoreTargetFrameworkDataSource]
+ [TestMatrix(testHost: NetFx, inProcess: true)]
+ [TestMatrix(testHost: Net)]
public void RunSettingsWithInvalidValueShouldLogError(RunnerInfo runnerInfo)
{
SetTestEnvironment(_testEnvironment, runnerInfo);
@@ -252,8 +252,8 @@ public void RunSettingsWithInvalidValueShouldLogError(RunnerInfo runnerInfo)
}
[TestMethod]
- [NetFullTargetFrameworkDataSourceAttribute(inIsolation: true, inProcess: true)]
- [NetCoreTargetFrameworkDataSource]
+ [TestMatrix(testHost: NetFx, inProcess: true)]
+ [TestMatrix(testHost: Net)]
public void TestAdapterPathFromRunSettings(RunnerInfo runnerInfo)
{
SetTestEnvironment(_testEnvironment, runnerInfo);
@@ -275,8 +275,8 @@ public void TestAdapterPathFromRunSettings(RunnerInfo runnerInfo)
#region RunSettings With EnvironmentVariables Settings Tests
[TestMethod]
- [NetFullTargetFrameworkDataSource]
- [NetCoreTargetFrameworkDataSource]
+ [TestMatrix(testHost: NetFx)]
+ [TestMatrix(testHost: Net)]
public void EnvironmentVariablesSettingsShouldSetEnvironmentVariables(RunnerInfo runnerInfo)
{
SetTestEnvironment(_testEnvironment, runnerInfo);
@@ -313,8 +313,8 @@ public void EnvironmentVariablesSettingsShouldSetEnvironmentVariables(RunnerInfo
///
///
[TestMethod]
- [NetFullTargetFrameworkDataSourceAttribute(useDesktopRunner: false)]
- [NetCoreTargetFrameworkDataSourceAttribute(useDesktopRunner: false)]
+ [TestMatrix(console: Net, testHost: NetFx)]
+ [TestMatrix(console: Net, testHost: Net)]
public void RunSettingsAreLoadedFromProject(RunnerInfo runnerInfo)
{
SetTestEnvironment(_testEnvironment, runnerInfo);
diff --git a/test/Microsoft.TestPlatform.Acceptance.IntegrationTests/SelfContainedAppTests.cs b/test/Microsoft.TestPlatform.Acceptance.IntegrationTests/SelfContainedAppTests.cs
index b236e6e507..8a6c8fc5ba 100644
--- a/test/Microsoft.TestPlatform.Acceptance.IntegrationTests/SelfContainedAppTests.cs
+++ b/test/Microsoft.TestPlatform.Acceptance.IntegrationTests/SelfContainedAppTests.cs
@@ -13,7 +13,7 @@ public class SelfContainedAppTests : AcceptanceTestBase
{
[TestMethod]
[TestCategory("Windows-Review")]
- [NetCoreTargetFrameworkDataSourceAttribute(useDesktopRunner: false)]
+ [TestMatrix(console: Net, testHost: Net)]
public void RunningApplicationThatIsBuiltAsSelfContainedWillNotFailToFindHostpolicyDll(RunnerInfo runnerInfo)
{
// when the application is self-contained which is dictated by the RuntimeIdentifier and OutputType project
diff --git a/test/Microsoft.TestPlatform.Acceptance.IntegrationTests/SerializationCompatibilityTests.cs b/test/Microsoft.TestPlatform.Acceptance.IntegrationTests/SerializationCompatibilityTests.cs
index 9cb64cea20..f9197a62f6 100644
--- a/test/Microsoft.TestPlatform.Acceptance.IntegrationTests/SerializationCompatibilityTests.cs
+++ b/test/Microsoft.TestPlatform.Acceptance.IntegrationTests/SerializationCompatibilityTests.cs
@@ -40,7 +40,7 @@ public class SerializationCompatibilityTests : AcceptanceTestBase
[TestMethod]
// Compatibility matrix includes the .NET Framework runner/testhost, which is not available on Linux/macOS.
[TestCategory("Windows-Review")]
- [RunnerCompatibilityDataSource()]
+ [CompatibilityMatrix(CompatScenario.VSTestConsole)]
public void DiscoverTests_LatestRunner_WithOlderTesthosts(RunnerInfo runnerInfo)
{
#pragma warning disable RS0030 // Do not use banned APIs
@@ -76,7 +76,7 @@ public void DiscoverTests_LatestRunner_WithOlderTesthosts(RunnerInfo runnerInfo)
[TestMethod]
// Compatibility matrix includes the .NET Framework runner/testhost, which is not available on Linux/macOS.
[TestCategory("Windows-Review")]
- [TestHostCompatibilityDataSource]
+ [CompatibilityMatrix(CompatScenario.TestHost)]
public void DiscoverTests_OlderRunners_WithLatestTesthost(RunnerInfo runnerInfo)
{
SetTestEnvironment(_testEnvironment, runnerInfo);
@@ -113,7 +113,7 @@ public void DiscoverTests_OlderRunners_WithLatestTesthost(RunnerInfo runnerInfo)
[TestMethod]
// Compatibility matrix includes the .NET Framework runner/testhost, which is not available on Linux/macOS.
[TestCategory("Windows-Review")]
- [RunnerCompatibilityDataSource]
+ [CompatibilityMatrix(CompatScenario.VSTestConsole)]
public void RunTests_LatestRunner_WithOlderTesthosts(RunnerInfo runnerInfo)
{
SetTestEnvironment(_testEnvironment, runnerInfo);
@@ -153,7 +153,7 @@ public void RunTests_LatestRunner_WithOlderTesthosts(RunnerInfo runnerInfo)
[TestMethod]
// Compatibility matrix includes the .NET Framework runner/testhost, which is not available on Linux/macOS.
[TestCategory("Windows-Review")]
- [TestHostCompatibilityDataSource]
+ [CompatibilityMatrix(CompatScenario.TestHost)]
public void RunTests_OlderRunners_WithLatestTesthost(RunnerInfo runnerInfo)
{
SetTestEnvironment(_testEnvironment, runnerInfo);
diff --git a/test/Microsoft.TestPlatform.Acceptance.IntegrationTests/SerializerSelectionTests.cs b/test/Microsoft.TestPlatform.Acceptance.IntegrationTests/SerializerSelectionTests.cs
index b21d517bd2..9225e6049d 100644
--- a/test/Microsoft.TestPlatform.Acceptance.IntegrationTests/SerializerSelectionTests.cs
+++ b/test/Microsoft.TestPlatform.Acceptance.IntegrationTests/SerializerSelectionTests.cs
@@ -10,7 +10,7 @@ namespace Microsoft.TestPlatform.AcceptanceTests;
public class SerializerSelectionTests : AcceptanceTestBase
{
[TestMethod]
- [NetCoreRunner(Core11TargetFramework)]
+ [TestMatrix(console: Net, testHost: Net)]
public void OnNetCoreRunner_ShouldUseSystemTextJson(RunnerInfo runnerInfo)
{
SetTestEnvironment(_testEnvironment, runnerInfo);
@@ -28,7 +28,7 @@ public void OnNetCoreRunner_ShouldUseSystemTextJson(RunnerInfo runnerInfo)
// The .NET Framework runner (and its Jsonite serializer) only runs on Windows; the core counterpart
// is covered by OnNetCoreRunner_ShouldUseSystemTextJson.
[TestCategory("Windows-Review")]
- [NetFrameworkRunner(Net481TargetFramework)]
+ [TestMatrix(console: NetFx, testHost: NetFx)]
public void OnNetFrameworkRunner_ShouldUseJsonite(RunnerInfo runnerInfo)
{
SetTestEnvironment(_testEnvironment, runnerInfo);
diff --git a/test/Microsoft.TestPlatform.Acceptance.IntegrationTests/TelemetryTests.cs b/test/Microsoft.TestPlatform.Acceptance.IntegrationTests/TelemetryTests.cs
index a972b9a62c..6d27b01f27 100644
--- a/test/Microsoft.TestPlatform.Acceptance.IntegrationTests/TelemetryTests.cs
+++ b/test/Microsoft.TestPlatform.Acceptance.IntegrationTests/TelemetryTests.cs
@@ -20,7 +20,7 @@ public class TelemetryTests : AcceptanceTestBase
private const string LOG_TELEMETRY_PATH = "VSTEST_LOGTELEMETRY_PATH";
[TestMethod]
- [NetCoreTargetFrameworkDataSource]
+ [TestMatrix(testHost: Net)]
public void RunTestsShouldPublishMetrics(RunnerInfo runnerInfo)
{
SetTestEnvironment(_testEnvironment, runnerInfo);
@@ -29,7 +29,7 @@ public void RunTestsShouldPublishMetrics(RunnerInfo runnerInfo)
}
[TestMethod]
- [NetCoreTargetFrameworkDataSource]
+ [TestMatrix(testHost: Net)]
public void DiscoverTestsShouldPublishMetrics(RunnerInfo runnerInfo)
{
SetTestEnvironment(_testEnvironment, runnerInfo);
diff --git a/test/Microsoft.TestPlatform.Acceptance.IntegrationTests/TestCaseFilterTests.cs b/test/Microsoft.TestPlatform.Acceptance.IntegrationTests/TestCaseFilterTests.cs
index 32323d9a54..47a974b228 100644
--- a/test/Microsoft.TestPlatform.Acceptance.IntegrationTests/TestCaseFilterTests.cs
+++ b/test/Microsoft.TestPlatform.Acceptance.IntegrationTests/TestCaseFilterTests.cs
@@ -10,7 +10,7 @@ namespace Microsoft.TestPlatform.AcceptanceTests;
public class TestCaseFilterTests : AcceptanceTestBase
{
[TestMethod]
- [NetCoreTargetFrameworkDataSource]
+ [TestMatrix(testHost: Net)]
public void RunSelectedTestsWithAndOperatorTrait(RunnerInfo runnerInfo)
{
SetTestEnvironment(_testEnvironment, runnerInfo);
@@ -26,7 +26,7 @@ public void RunSelectedTestsWithAndOperatorTrait(RunnerInfo runnerInfo)
}
[TestMethod]
- [NetCoreTargetFrameworkDataSource]
+ [TestMatrix(testHost: Net)]
public void RunSelectedTestsWithCategoryTraitInMixCase(RunnerInfo runnerInfo)
{
SetTestEnvironment(_testEnvironment, runnerInfo);
@@ -42,7 +42,7 @@ public void RunSelectedTestsWithCategoryTraitInMixCase(RunnerInfo runnerInfo)
}
[TestMethod]
- [NetCoreTargetFrameworkDataSource]
+ [TestMatrix(testHost: Net)]
public void RunSelectedTestsWithClassNameTrait(RunnerInfo runnerInfo)
{
SetTestEnvironment(_testEnvironment, runnerInfo);
@@ -58,7 +58,7 @@ public void RunSelectedTestsWithClassNameTrait(RunnerInfo runnerInfo)
}
[TestMethod]
- [NetCoreTargetFrameworkDataSource]
+ [TestMatrix(testHost: Net)]
public void RunSelectedTestsWithFullyQualifiedNameTrait(RunnerInfo runnerInfo)
{
SetTestEnvironment(_testEnvironment, runnerInfo);
@@ -76,7 +76,7 @@ public void RunSelectedTestsWithFullyQualifiedNameTrait(RunnerInfo runnerInfo)
}
[TestMethod]
- [NetCoreTargetFrameworkDataSource]
+ [TestMatrix(testHost: Net)]
public void RunSelectedTestsWithNameTrait(RunnerInfo runnerInfo)
{
SetTestEnvironment(_testEnvironment, runnerInfo);
@@ -92,7 +92,7 @@ public void RunSelectedTestsWithNameTrait(RunnerInfo runnerInfo)
}
[TestMethod]
- [NetCoreTargetFrameworkDataSource]
+ [TestMatrix(testHost: Net)]
public void RunSelectedTestsWithOrOperatorTrait(RunnerInfo runnerInfo)
{
SetTestEnvironment(_testEnvironment, runnerInfo);
@@ -108,7 +108,7 @@ public void RunSelectedTestsWithOrOperatorTrait(RunnerInfo runnerInfo)
}
[TestMethod]
- [NetCoreTargetFrameworkDataSource]
+ [TestMatrix(testHost: Net)]
public void RunSelectedTestsWithPriorityTrait(RunnerInfo runnerInfo)
{
SetTestEnvironment(_testEnvironment, runnerInfo);
@@ -128,7 +128,7 @@ public void RunSelectedTestsWithPriorityTrait(RunnerInfo runnerInfo)
/// this command should provide same results as /TestCaseFilter:"FullyQualifiedName~UnitTest1".
///
[TestMethod]
- [NetCoreTargetFrameworkDataSource]
+ [TestMatrix(testHost: Net)]
public void TestCaseFilterShouldWorkIfOnlyPropertyValueGivenInExpression(RunnerInfo runnerInfo)
{
SetTestEnvironment(_testEnvironment, runnerInfo);
@@ -150,7 +150,7 @@ public void TestCaseFilterShouldWorkIfOnlyPropertyValueGivenInExpression(RunnerI
[TestCategory("Windows-Review")]
// MSTest v1 tests from dlls are only supported in .NET Framework runner, in and outside of VS
// via Microsoft.VisualStudio.TestPlatform.Extensions.VSTestIntegration.dll
- [NetFullTargetFrameworkDataSource(useCoreRunner: false)]
+ [TestMatrix(console: NetFx, testHost: NetFx)]
public void DiscoverMstestV1TestsWithAndOperatorTrait(RunnerInfo runnerInfo)
{
SetTestEnvironment(_testEnvironment, runnerInfo);
@@ -171,7 +171,7 @@ public void DiscoverMstestV1TestsWithAndOperatorTrait(RunnerInfo runnerInfo)
}
[TestMethod]
- [NetCoreTargetFrameworkDataSource]
+ [TestMatrix(testHost: Net)]
public void RunSelectedTestsWithNoneTestCategoryFilterMatchesUncategorizedTests(RunnerInfo runnerInfo)
{
SetTestEnvironment(_testEnvironment, runnerInfo);
@@ -190,7 +190,7 @@ public void RunSelectedTestsWithNoneTestCategoryFilterMatchesUncategorizedTests(
}
[TestMethod]
- [NetCoreTargetFrameworkDataSource]
+ [TestMatrix(testHost: Net)]
public void RunSelectedTestsWithNoneTestCategoryNotEqualFilterMatchesCategorizedTests(RunnerInfo runnerInfo)
{
SetTestEnvironment(_testEnvironment, runnerInfo);
diff --git a/test/Microsoft.TestPlatform.Acceptance.IntegrationTests/TestPlatformNugetPackageTests.cs b/test/Microsoft.TestPlatform.Acceptance.IntegrationTests/TestPlatformNugetPackageTests.cs
index 498e515642..4e7c2d979a 100644
--- a/test/Microsoft.TestPlatform.Acceptance.IntegrationTests/TestPlatformNugetPackageTests.cs
+++ b/test/Microsoft.TestPlatform.Acceptance.IntegrationTests/TestPlatformNugetPackageTests.cs
@@ -22,8 +22,8 @@ public static void ClassInit(TestContext _)
[TestMethod]
[TestCategory("Windows-Review")]
- [NetFullTargetFrameworkDataSourceAttribute(useCoreRunner: false)]
- [NetCoreTargetFrameworkDataSourceAttribute(useCoreRunner: false)]
+ [TestMatrix(console: NetFx, testHost: NetFx)]
+ [TestMatrix(console: NetFx, testHost: Net)]
public void RunMultipleTestAssembliesWithCodeCoverage(RunnerInfo runnerInfo)
{
SetTestEnvironment(_testEnvironment, runnerInfo);
diff --git a/test/Microsoft.TestPlatform.Acceptance.IntegrationTests/VideoRecorderTests.cs b/test/Microsoft.TestPlatform.Acceptance.IntegrationTests/VideoRecorderTests.cs
index e738e84c5d..41cfe5ed29 100644
--- a/test/Microsoft.TestPlatform.Acceptance.IntegrationTests/VideoRecorderTests.cs
+++ b/test/Microsoft.TestPlatform.Acceptance.IntegrationTests/VideoRecorderTests.cs
@@ -15,7 +15,7 @@ public class VideoRecorderTests : AcceptanceTestBase
{
[Ignore("Video recording is flaky in CI — screen recorder fails to establish communication. See #15586.")]
[TestMethod]
- [NetFullTargetFrameworkDataSource(useCoreRunner: false, useVsixRunner: true)]
+ [TestMatrix(console: NetFx, testHost: NetFx, vsix: true)]
public void VideoRecorderDataCollectorShouldRecordVideoWithRunSettings(RunnerInfo runnerInfo)
{
SetTestEnvironment(_testEnvironment, runnerInfo);
diff --git a/test/Microsoft.TestPlatform.Library.IntegrationTests/AppDomainTests.cs b/test/Microsoft.TestPlatform.Library.IntegrationTests/AppDomainTests.cs
index f0b67c9b96..3ed6ac900a 100644
--- a/test/Microsoft.TestPlatform.Library.IntegrationTests/AppDomainTests.cs
+++ b/test/Microsoft.TestPlatform.Library.IntegrationTests/AppDomainTests.cs
@@ -22,7 +22,7 @@ public class AppDomainTests : AcceptanceTestBase
[TestMethod]
[TestCategory("Windows-Review")]
// AppDomains are .NET Framework only, run in .NET Framework runner and .NET runner
- [NetFullTargetFrameworkDataSource]
+ [TestMatrix(testHost: NetFx)]
public void RunTestExecutionWithDisableAppDomain(RunnerInfo runnerInfo)
{
SetTestEnvironment(_testEnvironment, runnerInfo);
diff --git a/test/Microsoft.TestPlatform.Library.IntegrationTests/FilterSourceIntegrationTests.cs b/test/Microsoft.TestPlatform.Library.IntegrationTests/FilterSourceIntegrationTests.cs
index f7a9c725ac..0a762aad58 100644
--- a/test/Microsoft.TestPlatform.Library.IntegrationTests/FilterSourceIntegrationTests.cs
+++ b/test/Microsoft.TestPlatform.Library.IntegrationTests/FilterSourceIntegrationTests.cs
@@ -16,7 +16,7 @@ namespace Microsoft.TestPlatform.Library.IntegrationTests;
public class FilterSourceIntegrationTests : AcceptanceTestBase
{
[TestMethod]
- [NetCoreTargetFrameworkDataSource(useDesktopRunner: false)]
+ [TestMatrix(console: Net, testHost: Net)]
public void FilterSourcePackage_AllTestsPass(RunnerInfo runnerInfo)
{
SetTestEnvironment(_testEnvironment, runnerInfo);
diff --git a/test/Microsoft.TestPlatform.Library.IntegrationTests/GlobalUsings.cs b/test/Microsoft.TestPlatform.Library.IntegrationTests/GlobalUsings.cs
new file mode 100644
index 0000000000..6e5cf8264e
--- /dev/null
+++ b/test/Microsoft.TestPlatform.Library.IntegrationTests/GlobalUsings.cs
@@ -0,0 +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.
+
+// Brings the Target enum members (Both, NetFx, Net) into scope unqualified so [TestMatrix] call sites
+// read as e.g. [TestMatrix(console: NetFx, testHost: Net)]. The console:/testHost: parameter names
+// disambiguate which axis each value applies to.
+global using static Microsoft.TestPlatform.TestUtilities.Target;
diff --git a/test/Microsoft.TestPlatform.Library.IntegrationTests/TranslationLayerTests/CodeCoverageTests.cs b/test/Microsoft.TestPlatform.Library.IntegrationTests/TranslationLayerTests/CodeCoverageTests.cs
index 1534d45823..5c0ff04c41 100644
--- a/test/Microsoft.TestPlatform.Library.IntegrationTests/TranslationLayerTests/CodeCoverageTests.cs
+++ b/test/Microsoft.TestPlatform.Library.IntegrationTests/TranslationLayerTests/CodeCoverageTests.cs
@@ -49,7 +49,7 @@ public void Cleanup()
}
[TestMethod]
- [NetCoreTargetFrameworkDataSource]
+ [TestMatrix(testHost: Net)]
public void TestRunWithCodeCoverage(RunnerInfo runnerInfo)
{
// arrange
@@ -74,7 +74,7 @@ public void TestRunWithCodeCoverage(RunnerInfo runnerInfo)
}
[TestMethod]
- [NetCoreTargetFrameworkDataSource]
+ [TestMatrix(testHost: Net)]
public void TestRunWithCodeCoverageUsingClrIe(RunnerInfo runnerInfo)
{
// arrange
@@ -99,7 +99,7 @@ public void TestRunWithCodeCoverageUsingClrIe(RunnerInfo runnerInfo)
}
[TestMethod]
- [NetCoreTargetFrameworkDataSource]
+ [TestMatrix(testHost: Net)]
public void TestRunWithCodeCoverageParallel(RunnerInfo runnerInfo)
{
// arrange
@@ -122,12 +122,12 @@ public void TestRunWithCodeCoverageParallel(RunnerInfo runnerInfo)
}
[TestMethod]
- [NetCoreTargetFrameworkDataSource]
+ [TestMatrix(testHost: Net)]
public async Task TestRunWithCodeCoverageAndAttachmentsProcessingWithInvokedDataCollectors(RunnerInfo runnerInfo)
=> await TestRunWithCodeCoverageAndAttachmentsProcessingInternal(runnerInfo, true);
[TestMethod]
- [NetCoreTargetFrameworkDataSource]
+ [TestMatrix(testHost: Net)]
public async Task TestRunWithCodeCoverageAndAttachmentsProcessingWithoutInvokedDataCollectors(RunnerInfo runnerInfo)
=> await TestRunWithCodeCoverageAndAttachmentsProcessingInternal(runnerInfo, false);
@@ -186,7 +186,7 @@ await _vstestConsoleWrapper.ProcessTestRunAttachmentsAsync(
}
[TestMethod]
- [NetCoreTargetFrameworkDataSource]
+ [TestMatrix(testHost: Net)]
public async Task TestRunWithCodeCoverageAndAttachmentsProcessingNoMetrics(RunnerInfo runnerInfo)
{
// System.Environment.SetEnvironmentVariable("VSTEST_RUNNER_DEBUG_ATTACHVS", "1");
@@ -239,7 +239,7 @@ public async Task TestRunWithCodeCoverageAndAttachmentsProcessingNoMetrics(Runne
}
[TestMethod]
- [NetCoreTargetFrameworkDataSource]
+ [TestMatrix(testHost: Net)]
public async Task TestRunWithCodeCoverageAndAttachmentsProcessingModuleDuplicated(RunnerInfo runnerInfo)
{
// arrange
@@ -296,7 +296,7 @@ public async Task TestRunWithCodeCoverageAndAttachmentsProcessingModuleDuplicate
}
[TestMethod]
- [NetCoreTargetFrameworkDataSource]
+ [TestMatrix(testHost: Net)]
public async Task TestRunWithCodeCoverageAndAttachmentsProcessingSameReportFormat(RunnerInfo runnerInfo)
{
// arrange
@@ -359,7 +359,7 @@ public async Task TestRunWithCodeCoverageAndAttachmentsProcessingSameReportForma
}
[TestMethod]
- [NetCoreTargetFrameworkDataSource]
+ [TestMatrix(testHost: Net)]
public async Task TestRunWithCodeCoverageAndAttachmentsProcessingDifferentReportFormats(RunnerInfo runnerInfo)
{
// arrange
@@ -422,7 +422,7 @@ public async Task TestRunWithCodeCoverageAndAttachmentsProcessingDifferentReport
}
[TestMethod]
- [NetCoreTargetFrameworkDataSource]
+ [TestMatrix(testHost: Net)]
public async Task EndSessionShouldEnsureVstestConsoleProcessDies(RunnerInfo runnerInfo)
{
SetTestEnvironment(_testEnvironment, runnerInfo);
diff --git a/test/Microsoft.TestPlatform.Library.IntegrationTests/TranslationLayerTests/CustomTestHostLauncherTests.cs b/test/Microsoft.TestPlatform.Library.IntegrationTests/TranslationLayerTests/CustomTestHostLauncherTests.cs
index 9a3f86259b..3d9fae9b18 100644
--- a/test/Microsoft.TestPlatform.Library.IntegrationTests/TranslationLayerTests/CustomTestHostLauncherTests.cs
+++ b/test/Microsoft.TestPlatform.Library.IntegrationTests/TranslationLayerTests/CustomTestHostLauncherTests.cs
@@ -37,7 +37,7 @@ public void Cleanup()
[TestMethod]
// WrapperCompatibilityDataSource includes the .NET Framework runner, which is not available on Linux/macOS.
[TestCategory("Windows-Review")]
- [WrapperCompatibilityDataSource()]
+ [CompatibilityMatrix(CompatScenario.Wrapper)]
public void RunTestsWithCustomTestHostLauncherAttachesToDebuggerUsingTheProvidedLauncher(RunnerInfo runnerInfo)
{
// Arrange
@@ -61,7 +61,7 @@ public void RunTestsWithCustomTestHostLauncherAttachesToDebuggerUsingTheProvided
// WrapperCompatibilityDataSource includes the .NET Framework runner, which is not available on Linux/macOS.
[TestCategory("Windows-Review")]
[TestCategory("Feature")]
- [WrapperCompatibilityDataSource]
+ [CompatibilityMatrix(CompatScenario.Wrapper)]
public void RunAllTestsWithMixedTFMsWillProvideAdditionalInformationToTheDebugger(RunnerInfo runnerInfo)
{
// Arrange
diff --git a/test/Microsoft.TestPlatform.Library.IntegrationTests/TranslationLayerTests/DataCollectorAttachmentProcessor.cs b/test/Microsoft.TestPlatform.Library.IntegrationTests/TranslationLayerTests/DataCollectorAttachmentProcessor.cs
index d85cb80977..8ae2849ae3 100644
--- a/test/Microsoft.TestPlatform.Library.IntegrationTests/TranslationLayerTests/DataCollectorAttachmentProcessor.cs
+++ b/test/Microsoft.TestPlatform.Library.IntegrationTests/TranslationLayerTests/DataCollectorAttachmentProcessor.cs
@@ -44,7 +44,7 @@ public void Cleanup()
}
[TestMethod]
- [NetCoreTargetFrameworkDataSource]
+ [TestMatrix(testHost: Net)]
public async Task AttachmentProcessorDataCollector_ExtensionFileNotLocked(RunnerInfo runnerInfo)
{
// arrange
diff --git a/test/Microsoft.TestPlatform.Library.IntegrationTests/TranslationLayerTests/DifferentTestFrameworkSimpleTests.cs b/test/Microsoft.TestPlatform.Library.IntegrationTests/TranslationLayerTests/DifferentTestFrameworkSimpleTests.cs
index cd1c7ad13a..35c1c39eee 100644
--- a/test/Microsoft.TestPlatform.Library.IntegrationTests/TranslationLayerTests/DifferentTestFrameworkSimpleTests.cs
+++ b/test/Microsoft.TestPlatform.Library.IntegrationTests/TranslationLayerTests/DifferentTestFrameworkSimpleTests.cs
@@ -39,7 +39,7 @@ public void Cleanup()
[TestMethod]
- [NetCoreTargetFrameworkDataSource]
+ [TestMatrix(testHost: Net)]
public void RunTestsWithNunitAdapter(RunnerInfo runnerInfo)
{
SetTestEnvironment(_testEnvironment, runnerInfo);
@@ -71,7 +71,7 @@ public void RunTestsWithNunitAdapter(RunnerInfo runnerInfo)
// The xUnit adapter produces no results on Linux/macOS (diagnostic log shows a NullReferenceException because path is null),
// so the run returns an empty sequence and .First() throws. Keep this Windows-only.
[TestCategory("Windows-Review")]
- [NetCoreTargetFrameworkDataSource]
+ [TestMatrix(testHost: Net)]
public void RunTestsWithXunitAdapter(RunnerInfo runnerInfo)
{
SetTestEnvironment(_testEnvironment, runnerInfo);
@@ -107,7 +107,7 @@ public void RunTestsWithXunitAdapter(RunnerInfo runnerInfo)
[TestMethod]
// TODO: this does not work with netcore testhost, why?
[TestCategory("Windows-Review")]
- [NetFullTargetFrameworkDataSource]
+ [TestMatrix(testHost: NetFx)]
public void RunTestsWithNonDllAdapter(RunnerInfo runnerInfo)
{
// This used to be test for Chutzpah, but it has long running problem with updating dependencies,
diff --git a/test/Microsoft.TestPlatform.Library.IntegrationTests/TranslationLayerTests/DiscoverTests.cs b/test/Microsoft.TestPlatform.Library.IntegrationTests/TranslationLayerTests/DiscoverTests.cs
index 190079f3a3..9f826d3b23 100644
--- a/test/Microsoft.TestPlatform.Library.IntegrationTests/TranslationLayerTests/DiscoverTests.cs
+++ b/test/Microsoft.TestPlatform.Library.IntegrationTests/TranslationLayerTests/DiscoverTests.cs
@@ -46,7 +46,7 @@ public void Cleanup()
[TestMethod]
// WrapperCompatibilityDataSource includes the .NET Framework runner, which is not available on Linux/macOS.
[TestCategory("Windows-Review")]
- [WrapperCompatibilityDataSource]
+ [CompatibilityMatrix(CompatScenario.Wrapper)]
public void DiscoverTestsUsingDiscoveryEventHandler1(RunnerInfo runnerInfo)
{
SetTestEnvironment(_testEnvironment, runnerInfo);
@@ -65,7 +65,7 @@ public void DiscoverTestsUsingDiscoveryEventHandler1(RunnerInfo runnerInfo)
[TestMethod]
// WrapperCompatibilityDataSource includes the .NET Framework runner, which is not available on Linux/macOS.
[TestCategory("Windows-Review")]
- [WrapperCompatibilityDataSource]
+ [CompatibilityMatrix(CompatScenario.Wrapper)]
public void DiscoverTestsUsingDiscoveryEventHandler2AndTelemetryOptedOut(RunnerInfo runnerInfo)
{
SetTestEnvironment(_testEnvironment, runnerInfo);
@@ -88,7 +88,7 @@ public void DiscoverTestsUsingDiscoveryEventHandler2AndTelemetryOptedOut(RunnerI
[TestMethod]
[TestCategory("Smoke")]
- [NetCoreTargetFrameworkDataSource]
+ [TestMatrix(testHost: Net)]
public void DiscoverTestsUsingDiscoveryEventHandler2AndTelemetryOptedIn(RunnerInfo runnerInfo)
{
SetTestEnvironment(_testEnvironment, runnerInfo);
@@ -106,7 +106,7 @@ public void DiscoverTestsUsingDiscoveryEventHandler2AndTelemetryOptedIn(RunnerIn
}
[TestMethod]
- [NetCoreTargetFrameworkDataSource]
+ [TestMatrix(testHost: Net)]
public void DiscoverTestsUsingEventHandler2AndBatchSize(RunnerInfo runnerInfo)
{
SetTestEnvironment(_testEnvironment, runnerInfo);
@@ -135,7 +135,7 @@ public void DiscoverTestsUsingEventHandler2AndBatchSize(RunnerInfo runnerInfo)
}
[TestMethod]
- [NetCoreTargetFrameworkDataSource]
+ [TestMatrix(testHost: Net)]
public void DiscoverTestsUsingEventHandler1AndBatchSize(RunnerInfo runnerInfo)
{
SetTestEnvironment(_testEnvironment, runnerInfo);
@@ -163,7 +163,7 @@ public void DiscoverTestsUsingEventHandler1AndBatchSize(RunnerInfo runnerInfo)
}
[TestMethod]
- [NetCoreTargetFrameworkDataSource]
+ [TestMatrix(testHost: Net)]
public void DiscoverTestUsingEventHandler2ShouldContainAllSourcesAsFullyDiscovered(RunnerInfo runnerInfo)
{
SetTestEnvironment(_testEnvironment, runnerInfo);
@@ -187,8 +187,8 @@ public void DiscoverTestUsingEventHandler2ShouldContainAllSourcesAsFullyDiscover
// We run .NET Runner -> .NET Testhost and .NET Framework Runner -> .NET Frameworks Testhost.
// The .NET Framework runner/testhost is not available on Linux/macOS.
[TestCategory("Windows-Review")]
- [NetFullTargetFrameworkDataSource(useCoreRunner: false)]
- [NetCoreTargetFrameworkDataSource(useDesktopRunner: false)]
+ [TestMatrix(console: NetFx, testHost: NetFx)]
+ [TestMatrix(console: Net, testHost: Net)]
public void DiscoverTestsUsingSourceNavigation(RunnerInfo runnerInfo)
{
SetTestEnvironment(_testEnvironment, runnerInfo);
@@ -208,7 +208,7 @@ public void DiscoverTestsUsingSourceNavigation(RunnerInfo runnerInfo)
}
[TestMethod]
- [NetCoreTargetFrameworkDataSource]
+ [TestMatrix(testHost: Net)]
[Ignore("Flaky on CI")]
public async Task CancelTestDiscovery(RunnerInfo runnerInfo)
{
diff --git a/test/Microsoft.TestPlatform.Library.IntegrationTests/TranslationLayerTests/LiveUnitTestingTests.cs b/test/Microsoft.TestPlatform.Library.IntegrationTests/TranslationLayerTests/LiveUnitTestingTests.cs
index 38e5f2a347..a0989ce895 100644
--- a/test/Microsoft.TestPlatform.Library.IntegrationTests/TranslationLayerTests/LiveUnitTestingTests.cs
+++ b/test/Microsoft.TestPlatform.Library.IntegrationTests/TranslationLayerTests/LiveUnitTestingTests.cs
@@ -38,7 +38,7 @@ public void Cleanup()
[TestMethod]
// Touches appdomain settings, preferring .NET Framework testhost here.
[TestCategory("Windows-Review")]
- [NetFullTargetFrameworkDataSource]
+ [TestMatrix(testHost: NetFx)]
public void DiscoverTestsUsingLiveUnitTesting(RunnerInfo runnerInfo)
{
SetTestEnvironment(_testEnvironment, runnerInfo);
@@ -64,7 +64,7 @@ public void DiscoverTestsUsingLiveUnitTesting(RunnerInfo runnerInfo)
[TestMethod]
// Touches appdomain settings, preferring .NET Framework testhost here.
[TestCategory("Windows-Review")]
- [NetFullTargetFrameworkDataSource]
+ [TestMatrix(testHost: NetFx)]
public void RunTestsWithLiveUnitTesting(RunnerInfo runnerInfo)
{
SetTestEnvironment(_testEnvironment, runnerInfo);
diff --git a/test/Microsoft.TestPlatform.Library.IntegrationTests/TranslationLayerTests/RunSelectedTests.cs b/test/Microsoft.TestPlatform.Library.IntegrationTests/TranslationLayerTests/RunSelectedTests.cs
index 2357b9f7cc..2aeca39584 100644
--- a/test/Microsoft.TestPlatform.Library.IntegrationTests/TranslationLayerTests/RunSelectedTests.cs
+++ b/test/Microsoft.TestPlatform.Library.IntegrationTests/TranslationLayerTests/RunSelectedTests.cs
@@ -37,7 +37,7 @@ public void Cleanup()
}
[TestMethod]
- [NetCoreTargetFrameworkDataSource]
+ [TestMatrix(testHost: Net)]
public void RunSelectedTestsWithoutTestPlatformOptions(RunnerInfo runnerInfo)
{
SetTestEnvironment(_testEnvironment, runnerInfo);
@@ -56,7 +56,7 @@ public void RunSelectedTestsWithoutTestPlatformOptions(RunnerInfo runnerInfo)
}
[TestMethod]
- [NetCoreTargetFrameworkDataSource]
+ [TestMatrix(testHost: Net)]
public void RunSelectedTestsWithTestPlatformOptions(RunnerInfo runnerInfo)
{
SetTestEnvironment(_testEnvironment, runnerInfo);
diff --git a/test/Microsoft.TestPlatform.Library.IntegrationTests/TranslationLayerTests/RunTests.cs b/test/Microsoft.TestPlatform.Library.IntegrationTests/TranslationLayerTests/RunTests.cs
index 7975ecd58e..b1236c573e 100644
--- a/test/Microsoft.TestPlatform.Library.IntegrationTests/TranslationLayerTests/RunTests.cs
+++ b/test/Microsoft.TestPlatform.Library.IntegrationTests/TranslationLayerTests/RunTests.cs
@@ -48,7 +48,7 @@ public void Cleanup()
[TestMethod]
// WrapperCompatibilityDataSource includes the .NET Framework runner, which is not available on Linux/macOS.
[TestCategory("Windows-Review")]
- [WrapperCompatibilityDataSource]
+ [CompatibilityMatrix(CompatScenario.Wrapper)]
public void RunAllTests(RunnerInfo runnerInfo)
{
SetTestEnvironment(_testEnvironment, runnerInfo);
@@ -65,7 +65,7 @@ public void RunAllTests(RunnerInfo runnerInfo)
}
[TestMethod]
- [NetCoreTargetFrameworkDataSource]
+ [TestMatrix(testHost: Net)]
[TestCategory("Smoke")]
public void RunAllTestsFromDlls(RunnerInfo runnerInfo)
{
@@ -85,7 +85,7 @@ public void RunAllTestsFromDlls(RunnerInfo runnerInfo)
[TestMethod]
// WrapperCompatibilityDataSource includes the .NET Framework runner, which is not available on Linux/macOS.
[TestCategory("Windows-Review")]
- [WrapperCompatibilityDataSource()]
+ [CompatibilityMatrix(CompatScenario.Wrapper)]
public void RunAllTestsWithMixedTFMsWillRunTestsFromAllProvidedDllEvenWhenTheyMixTFMs(RunnerInfo runnerInfo)
{
// Arrange
@@ -110,7 +110,7 @@ public void RunAllTestsWithMixedTFMsWillRunTestsFromAllProvidedDllEvenWhenTheyMi
}
[TestMethod]
- [NetCoreTargetFrameworkDataSource]
+ [TestMatrix(testHost: Net)]
public void EndSessionShouldEnsureVstestConsoleProcessDies(RunnerInfo runnerInfo)
{
SetTestEnvironment(_testEnvironment, runnerInfo);
@@ -130,7 +130,7 @@ public void EndSessionShouldEnsureVstestConsoleProcessDies(RunnerInfo runnerInfo
}
[TestMethod]
- [NetCoreTargetFrameworkDataSource]
+ [TestMatrix(testHost: Net)]
public void RunTestsWithTelemetryOptedIn(RunnerInfo runnerInfo)
{
SetTestEnvironment(_testEnvironment, runnerInfo);
@@ -153,7 +153,7 @@ public void RunTestsWithTelemetryOptedIn(RunnerInfo runnerInfo)
}
[TestMethod]
- [NetCoreTargetFrameworkDataSource]
+ [TestMatrix(testHost: Net)]
public void RunTestsWithTelemetryOptedOut(RunnerInfo runnerInfo)
{
SetTestEnvironment(_testEnvironment, runnerInfo);
@@ -175,8 +175,8 @@ public void RunTestsWithTelemetryOptedOut(RunnerInfo runnerInfo)
// The assertion below branches on the .NET Framework-specific stack overflow message, and the
// .NET Framework testhost is only available on Windows, so this runs as Windows-Review.
[TestCategory("Windows-Review")]
- [NetFullTargetFrameworkDataSource(useDesktopRunner: false)]
- [NetCoreTargetFrameworkDataSource(useDesktopRunner: false)]
+ [TestMatrix(console: Net, testHost: NetFx)]
+ [TestMatrix(console: Net, testHost: Net)]
public void RunTestsShouldThrowOnStackOverflowException(RunnerInfo runnerInfo)
{
SetTestEnvironment(_testEnvironment, runnerInfo);
@@ -199,7 +199,7 @@ public void RunTestsShouldThrowOnStackOverflowException(RunnerInfo runnerInfo)
}
[TestMethod]
- [NetCoreTargetFrameworkDataSource(useDesktopRunner: false)]
+ [TestMatrix(console: Net, testHost: Net)]
public void RunTestsShouldShowProperWarningOnNoTestsForTestCaseFilter(RunnerInfo runnerInfo)
{
SetTestEnvironment(_testEnvironment, runnerInfo);
diff --git a/test/Microsoft.TestPlatform.Library.IntegrationTests/TranslationLayerTests/RunTestsWithDifferentConfigurationTests.cs b/test/Microsoft.TestPlatform.Library.IntegrationTests/TranslationLayerTests/RunTestsWithDifferentConfigurationTests.cs
index 9ac4c8f513..f67b22870c 100644
--- a/test/Microsoft.TestPlatform.Library.IntegrationTests/TranslationLayerTests/RunTestsWithDifferentConfigurationTests.cs
+++ b/test/Microsoft.TestPlatform.Library.IntegrationTests/TranslationLayerTests/RunTestsWithDifferentConfigurationTests.cs
@@ -44,7 +44,7 @@ public void Cleanup()
}
[TestMethod]
- [NetCoreTargetFrameworkDataSource]
+ [TestMatrix(testHost: Net)]
public void RunTestsWithTestAdapterPath(RunnerInfo runnerInfo)
{
SetTestEnvironment(_testEnvironment, runnerInfo);
@@ -66,7 +66,7 @@ public void RunTestsWithTestAdapterPath(RunnerInfo runnerInfo)
}
[TestMethod]
- [NetCoreTargetFrameworkDataSource]
+ [TestMatrix(testHost: Net)]
public void RunTestsWithRunSettingsWithParallel(RunnerInfo runnerInfo)
{
SetTestEnvironment(_testEnvironment, runnerInfo);
@@ -98,7 +98,7 @@ public void RunTestsWithRunSettingsWithParallel(RunnerInfo runnerInfo)
}
[TestMethod]
- [NetCoreTargetFrameworkDataSource]
+ [TestMatrix(testHost: Net)]
public void RunTestsWithX64Source(RunnerInfo runnerInfo)
{
SetTestEnvironment(_testEnvironment, runnerInfo);
diff --git a/test/Microsoft.TestPlatform.Library.IntegrationTests/TranslationLayerTests/RunTestsWithFilterTests.cs b/test/Microsoft.TestPlatform.Library.IntegrationTests/TranslationLayerTests/RunTestsWithFilterTests.cs
index 3dc564da17..ee12ba1194 100644
--- a/test/Microsoft.TestPlatform.Library.IntegrationTests/TranslationLayerTests/RunTestsWithFilterTests.cs
+++ b/test/Microsoft.TestPlatform.Library.IntegrationTests/TranslationLayerTests/RunTestsWithFilterTests.cs
@@ -39,7 +39,7 @@ public void Cleanup()
[TestMethod]
// WrapperCompatibilityDataSource includes the .NET Framework runner, which is not available on Linux/macOS.
[TestCategory("Windows-Review")]
- [WrapperCompatibilityDataSource]
+ [CompatibilityMatrix(CompatScenario.Wrapper)]
public void RunTestsWithTestCaseFilter(RunnerInfo runnerInfo)
{
SetTestEnvironment(_testEnvironment, runnerInfo);
@@ -62,7 +62,7 @@ public void RunTestsWithTestCaseFilter(RunnerInfo runnerInfo)
[TestMethod]
// Validates filter expression that is passed all the way down to testhost, unlikely that we will see difference in beharior between desktop and netcore runners.
- [NetCoreTargetFrameworkDataSource(useDesktopRunner: false)]
+ [TestMatrix(console: Net, testHost: Net)]
public void RunTestsWithFastFilter(RunnerInfo runnerInfo)
{
SetTestEnvironment(_testEnvironment, runnerInfo);
diff --git a/test/Microsoft.TestPlatform.Library.IntegrationTests/TranslationLayerTests/SerializeTestRunTests.cs b/test/Microsoft.TestPlatform.Library.IntegrationTests/TranslationLayerTests/SerializeTestRunTests.cs
index 87f27d6787..4839215644 100644
--- a/test/Microsoft.TestPlatform.Library.IntegrationTests/TranslationLayerTests/SerializeTestRunTests.cs
+++ b/test/Microsoft.TestPlatform.Library.IntegrationTests/TranslationLayerTests/SerializeTestRunTests.cs
@@ -48,7 +48,7 @@ public void Cleanup()
[TestMethod]
// This is testhost concept, try it on combination of testhosts, and .NET Runner.
- [NetCoreTargetFrameworkDataSource(useDesktopRunner: false)]
+ [TestMatrix(console: Net, testHost: Net)]
public void DiscoverTestsAndRunTestsSequentially(RunnerInfo runnerInfo)
{
// Arrange
@@ -69,7 +69,7 @@ public void DiscoverTestsAndRunTestsSequentially(RunnerInfo runnerInfo)
[TestMethod]
// This is testhost concept, try it on combination of testhosts, and .NET Runner.
- [NetCoreTargetFrameworkDataSource(useDesktopRunner: false)]
+ [TestMatrix(console: Net, testHost: Net)]
public void DiscoverTestsAndRunTestsSequentially_DisabledByFeatureFlag(RunnerInfo runnerInfo)
{
// Arrange
@@ -90,7 +90,7 @@ public void DiscoverTestsAndRunTestsSequentially_DisabledByFeatureFlag(RunnerInf
}
[TestMethod]
- [NetCoreTargetFrameworkDataSource]
+ [TestMatrix(testHost: Net)]
public void DiscoverTestsAndRunTestsSequentially_IsNotSupportedForSources(RunnerInfo runnerInfo)
{
// Arrange
diff --git a/test/Microsoft.TestPlatform.Library.IntegrationTests/TranslationLayerTests/TargetFrameworkTestHostDemultiplexer.cs b/test/Microsoft.TestPlatform.Library.IntegrationTests/TranslationLayerTests/TargetFrameworkTestHostDemultiplexer.cs
index c3b2d7d1b9..ef5f6267f0 100644
--- a/test/Microsoft.TestPlatform.Library.IntegrationTests/TranslationLayerTests/TargetFrameworkTestHostDemultiplexer.cs
+++ b/test/Microsoft.TestPlatform.Library.IntegrationTests/TranslationLayerTests/TargetFrameworkTestHostDemultiplexer.cs
@@ -37,17 +37,17 @@ public void Cleanup()
}
[TestMethod]
- [NetCoreTargetFrameworkDataSource]
+ [TestMatrix(testHost: Net)]
public void ExecuteContainerInMultiHost(RunnerInfo runnerInfo)
=> ExecuteContainerInMultiHost(runnerInfo, 3);
[TestMethod]
- [NetCoreTargetFrameworkDataSource]
+ [TestMatrix(testHost: Net)]
public void ExecuteContainerInMultiHost_MoreHostsThanTests(RunnerInfo runnerInfo)
=> ExecuteContainerInMultiHost(runnerInfo, 20);
[TestMethod]
- [NetCoreTargetFrameworkDataSource]
+ [TestMatrix(testHost: Net)]
public void ExecuteSingleContainerInDefaultSingleHost(RunnerInfo runnerInfo)
=> ExecuteContainerInMultiHost(runnerInfo, -1);
diff --git a/test/Microsoft.TestPlatform.TestUtilities/CompatibilityMatrixAttribute.cs b/test/Microsoft.TestPlatform.TestUtilities/CompatibilityMatrixAttribute.cs
new file mode 100644
index 0000000000..65af1f2f12
--- /dev/null
+++ b/test/Microsoft.TestPlatform.TestUtilities/CompatibilityMatrixAttribute.cs
@@ -0,0 +1,119 @@
+// 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 System.Reflection;
+
+namespace Microsoft.TestPlatform.TestUtilities;
+
+///
+/// Runs the test across a matrix of shipped vstest.console / testhost / MSTest-adapter versions to guard
+/// backward compatibility. The component named by the scenario is pinned to the locally-built bits;
+/// the other dimensions sweep a range of released versions. Each row is handed to the test as a .
+/// Use the optional Before*/After*Feature properties to skip rows whose version predates / postdates a feature.
+///
+public sealed class CompatibilityMatrixAttribute : CompatibilityDataSourceAttribute
+{
+ private readonly CompatibilityRowsBuilder _builder;
+ private readonly bool _withInProcess;
+ private readonly bool _withVsixRunner;
+
+ ///
+ /// Initializes a new instance of the class.
+ ///
+ /// Which component's local changes are under test — the others sweep their compatible range.
+ public CompatibilityMatrixAttribute(CompatScenario scenario)
+ {
+ (string runnerVersions, string runnerFrameworks, string hostVersions, string hostFrameworks, string adapterVersions, _withInProcess, _withVsixRunner) = scenario switch
+ {
+ // Locally-built vstest.console against the range of shipped testhost versions (adds in-process and VSIX console rows).
+ CompatScenario.VSTestConsole => (
+ AcceptanceTestBase.LATEST, AcceptanceTestBase.RUNNER_NETFX_AND_NET,
+ AcceptanceTestBase.LATEST_TO_LEGACY, AcceptanceTestBase.HOST_NETFX_AND_NET,
+ AcceptanceTestBase.LATESTSTABLE, true, true),
+
+ // Locally-built testhost against recent shipped vstest.console versions.
+ CompatScenario.TestHost => (
+ AcceptanceTestBase.LATEST_TO_RECENT_STABLE, AcceptanceTestBase.RUNNER_NETFX_AND_NET,
+ AcceptanceTestBase.LATEST, AcceptanceTestBase.HOST_NETFX_AND_NET,
+ AcceptanceTestBase.LATESTSTABLE, false, false),
+
+ // Locally-built VSTestConsoleWrapper against recent shipped vstest.console versions (adds VSIX, .NET testhost only).
+ CompatScenario.Wrapper => (
+ AcceptanceTestBase.LATEST_TO_RECENT_STABLE, AcceptanceTestBase.RUNNER_NETFX_AND_NET,
+ AcceptanceTestBase.LATEST, AcceptanceTestBase.HOST_NET,
+ AcceptanceTestBase.LATESTSTABLE, false, true),
+
+ // Locally-built vstest.console + testhost against the range of shipped MSTest adapter versions.
+ CompatScenario.Adapter => (
+ AcceptanceTestBase.LATEST, AcceptanceTestBase.RUNNER_NET,
+ AcceptanceTestBase.LATEST, AcceptanceTestBase.HOST_NETFX_AND_NET,
+ AcceptanceTestBase.LATESTPREVIEW_TO_LEGACY, true, true),
+
+ _ => throw new ArgumentOutOfRangeException(nameof(scenario), scenario, null),
+ };
+
+ _builder = new CompatibilityRowsBuilder(
+ runnerVersions, runnerFrameworks,
+ hostVersions, hostFrameworks,
+ adapterVersions, AcceptanceTestBase.MSTEST);
+
+ // Do not generate the data rows here, properties (e.g. DebugVSTestConsole) are not populated until after constructor is done.
+ }
+
+ public bool DebugVSTestConsole { get; set; }
+ public bool DebugTestHost { get; set; }
+ public bool DebugDataCollector { get; set; }
+ public bool DebugStopAtEntrypoint { get; set; }
+ public int JustRow { get; set; } = -1;
+
+ public string? BeforeVSTestConsoleFeature { get; set; }
+ public string? AfterVSTestConsoleFeature { get; set; }
+
+ public string? BeforeTestHostFeature { get; set; }
+ public string? AfterTestHostFeature { get; set; }
+
+ public string? BeforeAdapterFeature { get; set; }
+ public string? AfterAdapterFeature { get; set; }
+
+ public override void CreateData(MethodInfo methodInfo)
+ {
+ _builder.WithInProcess = _withInProcess;
+ _builder.WithVSIXRunner = _withVsixRunner;
+
+ _builder.BeforeRunnerFeature = BeforeVSTestConsoleFeature;
+ _builder.AfterRunnerFeature = AfterVSTestConsoleFeature;
+
+ _builder.BeforeTestHostFeature = BeforeTestHostFeature;
+ _builder.AfterTestHostFeature = AfterTestHostFeature;
+
+ _builder.BeforeAdapterFeature = BeforeAdapterFeature;
+ _builder.AfterAdapterFeature = AfterAdapterFeature;
+
+ _builder.DebugDataCollector = DebugDataCollector;
+ _builder.DebugVSTestConsole = DebugVSTestConsole;
+ _builder.DebugTestHost = DebugTestHost;
+ _builder.DebugStopAtEntrypoint = DebugStopAtEntrypoint;
+
+ _builder.JustRow = JustRow < 0 ? null : JustRow;
+
+ var data = _builder.CreateData();
+ data.ForEach(AddData);
+ }
+}
+
+/// Picks which component's local changes tests for compatibility.
+public enum CompatScenario
+{
+ /// Locally-built vstest.console against the range of shipped testhost versions (adds in-process and VSIX console rows).
+ VSTestConsole,
+
+ /// Locally-built testhost against recent shipped vstest.console versions.
+ TestHost,
+
+ /// Locally-built VSTestConsoleWrapper (translation layer) against recent shipped vstest.console versions (adds VSIX, .NET testhost only).
+ Wrapper,
+
+ /// Locally-built vstest.console + testhost against the range of shipped MSTest adapter versions.
+ Adapter,
+}
diff --git a/test/Microsoft.TestPlatform.TestUtilities/TestMatrixAttribute.cs b/test/Microsoft.TestPlatform.TestUtilities/TestMatrixAttribute.cs
new file mode 100644
index 0000000000..4ebee84d32
--- /dev/null
+++ b/test/Microsoft.TestPlatform.TestUtilities/TestMatrixAttribute.cs
@@ -0,0 +1,170 @@
+// 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 System.Collections.Generic;
+using System.Globalization;
+using System.IO;
+using System.Reflection;
+
+using Microsoft.VisualStudio.TestTools.UnitTesting;
+
+namespace Microsoft.TestPlatform.TestUtilities;
+
+///
+/// Runs the test once for every cell of the vstest.console × testhost matrix that the current OS supports,
+/// using the locally-built bits. Each generated row is handed to the test as a .
+///
+/// With no arguments the test runs the full matrix: both consoles — .NET Framework (vstest.console.exe)
+/// and .NET (dotnet vstest.console.dll) — against both testhost target frameworks (net481 and net11.0).
+/// Pin an axis to narrow it, e.g. [TestMatrix(testHost: Net)] keeps both consoles but only the
+/// .NET testhost, and [TestMatrix(console: Net)] keeps both testhosts but only the .NET console.
+///
+/// /InIsolation is used only for the .NET Framework console driving a .NET Framework testhost; every other
+/// cell runs in its natural mode. On non-Windows the .NET Framework console and net4* testhosts are skipped.
+///
+[AttributeUsage(AttributeTargets.Method, AllowMultiple = true)]
+public sealed class TestMatrixAttribute : Attribute, ITestDataSource
+{
+ private readonly Target _console;
+ private readonly Target _testHost;
+ private readonly bool _inIsolation;
+ private readonly bool _inProcess;
+ private readonly bool _vsix;
+
+ ///
+ /// Initializes a new instance of the class.
+ ///
+ /// Which vstest.console to run: both (default), only .NET Framework, or only .NET.
+ /// Which testhost target framework to run against: both (default), only net481, or only net11.0.
+ /// Emit the /InIsolation row for the .NET Framework console × .NET Framework testhost cell (default ). Ignored for every other cell.
+ /// Additionally run the .NET Framework console × .NET Framework testhost cell in-process (without /InIsolation). Ignored for every other cell.
+ /// Additively run the vstest.console shipped in the Visual Studio VSIX as its own row (a .NET Framework console and testhost), independent of the and axes. Windows-only.
+ public TestMatrixAttribute(
+ Target console = Target.Both,
+ Target testHost = Target.Both,
+ bool inIsolation = true,
+ bool inProcess = false,
+ bool vsix = false)
+ {
+ _console = console;
+ _testHost = testHost;
+ _inIsolation = inIsolation;
+ _inProcess = inProcess;
+ _vsix = vsix;
+ }
+
+ public bool DebugVSTestConsole { get; set; }
+ public bool DebugTestHost { get; set; }
+ public bool DebugDataCollector { get; set; }
+ public bool DebugStopAtEntrypoint { get; set; }
+
+ public IEnumerable