Skip to content

Commit 1e46115

Browse files
CopilotEvangelink
andauthored
Fix flaky test: eliminate parallel build conflict in TestDiscoveryWarningsTests (#7532)
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: Evangelink <11340282+Evangelink@users.noreply.github.com>
1 parent e4196b7 commit 1e46115

1 file changed

Lines changed: 8 additions & 11 deletions

File tree

test/IntegrationTests/MSTest.Acceptance.IntegrationTests/TestDiscoveryWarningsTests.cs

Lines changed: 8 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -51,13 +51,12 @@ public sealed class TestAssetFixture() : TestAssetFixtureBase(AcceptanceFixture.
5151
{
5252
public string TargetAssetPath => GetAssetPath(AssetName);
5353

54-
public string BaseTargetAssetPath => GetAssetPath(BaseClassAssetName);
55-
5654
public override IEnumerable<(string ID, string Name, string Code)> GetAssetsToGenerate()
5755
{
58-
yield return (BaseClassAssetName, BaseClassAssetName,
59-
BaseClassSourceCode.PatchTargetFrameworks(TargetFrameworks.All));
60-
56+
// NOTE: The BaseClass asset is embedded as a subdirectory within the main asset to avoid
57+
// parallel build conflicts. If they were separate assets, TestAssetFixtureBase would build
58+
// them in parallel, but TestDiscoveryWarnings has a ProjectReference to TestDiscoveryWarningsBaseClass,
59+
// causing both builds to write to the same files simultaneously (file locking errors).
6160
yield return (AssetName, AssetName,
6261
SourceCode.PatchTargetFrameworks(TargetFrameworks.All)
6362
.PatchCodeWithReplace("$MSTestVersion$", MSTestVersion));
@@ -75,7 +74,8 @@ public sealed class TestAssetFixture() : TestAssetFixtureBase(AcceptanceFixture.
7574
</PropertyGroup>
7675
7776
<ItemGroup>
78-
<ProjectReference Include="../TestDiscoveryWarningsBaseClass/TestDiscoveryWarningsBaseClass.csproj" />
77+
<ProjectReference Include="TestDiscoveryWarningsBaseClass/TestDiscoveryWarningsBaseClass.csproj" />
78+
<Compile Remove="TestDiscoveryWarningsBaseClass/**" />
7979
</ItemGroup>
8080
<ItemGroup>
8181
<PackageReference Include="MSTest.TestAdapter" Version="$MSTestVersion$" />
@@ -129,10 +129,8 @@ public class TestClass2
129129
[TestMethod]
130130
public void Test2_1() {}
131131
}
132-
""";
133132
134-
private const string BaseClassSourceCode = """
135-
#file TestDiscoveryWarningsBaseClass.csproj
133+
#file TestDiscoveryWarningsBaseClass/TestDiscoveryWarningsBaseClass.csproj
136134
<Project Sdk="Microsoft.NET.Sdk">
137135
138136
<PropertyGroup>
@@ -143,8 +141,7 @@ public void Test2_1() {}
143141
144142
</Project>
145143
146-
147-
#file UnitTest1.cs
144+
#file TestDiscoveryWarningsBaseClass/UnitTest1.cs
148145
namespace Base;
149146
150147
public class BaseClass

0 commit comments

Comments
 (0)