From ec507a64abb8367b92fee6ec14418bd493ee9daa Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 12 Mar 2026 07:58:08 +0000 Subject: [PATCH 1/3] Initial plan From 8c4061feac3b6f222b9b672169c0d21f6496897b Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 12 Mar 2026 08:06:32 +0000 Subject: [PATCH 2/3] Fix flaky test: embed TestDiscoveryWarningsBaseClass as subdirectory to avoid parallel build conflict Co-authored-by: Evangelink <11340282+Evangelink@users.noreply.github.com> --- .../TestDiscoveryWarningsTests.cs | 18 +++++++----------- 1 file changed, 7 insertions(+), 11 deletions(-) diff --git a/test/IntegrationTests/MSTest.Acceptance.IntegrationTests/TestDiscoveryWarningsTests.cs b/test/IntegrationTests/MSTest.Acceptance.IntegrationTests/TestDiscoveryWarningsTests.cs index db9fb45806..36c906c616 100644 --- a/test/IntegrationTests/MSTest.Acceptance.IntegrationTests/TestDiscoveryWarningsTests.cs +++ b/test/IntegrationTests/MSTest.Acceptance.IntegrationTests/TestDiscoveryWarningsTests.cs @@ -51,13 +51,12 @@ public sealed class TestAssetFixture() : TestAssetFixtureBase(AcceptanceFixture. { public string TargetAssetPath => GetAssetPath(AssetName); - public string BaseTargetAssetPath => GetAssetPath(BaseClassAssetName); - public override IEnumerable<(string ID, string Name, string Code)> GetAssetsToGenerate() { - yield return (BaseClassAssetName, BaseClassAssetName, - BaseClassSourceCode.PatchTargetFrameworks(TargetFrameworks.All)); - + // NOTE: The BaseClass asset is embedded as a subdirectory within the main asset to avoid + // parallel build conflicts. If they were separate assets, TestAssetFixtureBase would build + // them in parallel, but TestDiscoveryWarnings has a ProjectReference to TestDiscoveryWarningsBaseClass, + // causing both builds to write to the same files simultaneously (file locking errors). yield return (AssetName, AssetName, SourceCode.PatchTargetFrameworks(TargetFrameworks.All) .PatchCodeWithReplace("$MSTestVersion$", MSTestVersion)); @@ -75,7 +74,7 @@ public sealed class TestAssetFixture() : TestAssetFixtureBase(AcceptanceFixture. - + @@ -129,10 +128,8 @@ public class TestClass2 [TestMethod] public void Test2_1() {} } -"""; - private const string BaseClassSourceCode = """ -#file TestDiscoveryWarningsBaseClass.csproj +#file TestDiscoveryWarningsBaseClass/TestDiscoveryWarningsBaseClass.csproj @@ -143,8 +140,7 @@ public void Test2_1() {} - -#file UnitTest1.cs +#file TestDiscoveryWarningsBaseClass/UnitTest1.cs namespace Base; public class BaseClass From 18b9e196dad33aa0659d804d383b1ce99615bdc6 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 12 Mar 2026 08:38:49 +0000 Subject: [PATCH 3/3] Fix CS0436: exclude subdirectory files from parent project compilation Co-authored-by: Evangelink <11340282+Evangelink@users.noreply.github.com> --- .../TestDiscoveryWarningsTests.cs | 1 + 1 file changed, 1 insertion(+) diff --git a/test/IntegrationTests/MSTest.Acceptance.IntegrationTests/TestDiscoveryWarningsTests.cs b/test/IntegrationTests/MSTest.Acceptance.IntegrationTests/TestDiscoveryWarningsTests.cs index 36c906c616..a6aca74dc1 100644 --- a/test/IntegrationTests/MSTest.Acceptance.IntegrationTests/TestDiscoveryWarningsTests.cs +++ b/test/IntegrationTests/MSTest.Acceptance.IntegrationTests/TestDiscoveryWarningsTests.cs @@ -75,6 +75,7 @@ public sealed class TestAssetFixture() : TestAssetFixtureBase(AcceptanceFixture. +