From 174ff12f4bdad32d32e3681971420321956353b2 Mon Sep 17 00:00:00 2001 From: Ankit Jain Date: Thu, 10 Jul 2025 03:54:53 -0400 Subject: [PATCH 1/2] [tests] Split NewUpAndBuildSupportProjectTemplates The number of tests have multiplied, and it takes ~14 mins on github actions to run them. Split them up so they can run in parallel and the overall run time can come down. --- ...wUpAndBuildSupportProjectTemplatesTests.cs | 127 ++++++++++++++++-- 1 file changed, 114 insertions(+), 13 deletions(-) diff --git a/tests/Aspire.Templates.Tests/NewUpAndBuildSupportProjectTemplatesTests.cs b/tests/Aspire.Templates.Tests/NewUpAndBuildSupportProjectTemplatesTests.cs index 7c0c6aafe8f..e173a1b343b 100644 --- a/tests/Aspire.Templates.Tests/NewUpAndBuildSupportProjectTemplatesTests.cs +++ b/tests/Aspire.Templates.Tests/NewUpAndBuildSupportProjectTemplatesTests.cs @@ -5,21 +5,10 @@ namespace Aspire.Templates.Tests; -public class NewUpAndBuildSupportProjectTemplates(ITestOutputHelper testOutput) : TemplateTestsBase(testOutput) +public abstract class NewUpAndBuildSupportProjectTemplatesBase(ITestOutputHelper testOutput) : TemplateTestsBase(testOutput) { - [Theory] - // [MemberData(nameof(TestDataForNewAndBuildTemplateTests), arguments: "aspire-apphost")] - // [MemberData(nameof(TestDataForNewAndBuildTemplateTests), arguments: "aspire-servicedefaults")] - [MemberData(nameof(TestDataForNewAndBuildTemplateTests), arguments: ["aspire-mstest", ""])] - [MemberData(nameof(TestDataForNewAndBuildTemplateTests), arguments: ["aspire-nunit", ""])] - [MemberData(nameof(TestDataForNewAndBuildTemplateTests), arguments: ["aspire-xunit", ""])] - [MemberData(nameof(TestDataForNewAndBuildTemplateTests), arguments: ["aspire-xunit", "--xunit-version v2"])] - [MemberData(nameof(TestDataForNewAndBuildTemplateTests), arguments: ["aspire-xunit", "--xunit-version v3"])] - [MemberData(nameof(TestDataForNewAndBuildTemplateTests), arguments: ["aspire-xunit", "--xunit-version v3mtp"])] - [MemberData(nameof(TestDataForNewAndBuildTemplateTests), arguments: ["aspire-xunit", "--aspire-version 9.3"])] - [MemberData(nameof(TestDataForNewAndBuildTemplateTests), arguments: ["aspire-xunit", "--aspire-version 9.4"])] [Trait("category", "basic-build")] - public async Task CanNewAndBuild(string templateName, string extraTestCreationArgs, TestSdk sdk, TestTargetFramework tfm, string? error) + protected async Task CanNewAndBuildActual(string templateName, string extraTestCreationArgs, TestSdk sdk, TestTargetFramework tfm, string? error) { var id = GetNewProjectId(prefix: $"new_build_{FixupSymbolName(templateName)}"); var topLevelDir = Path.Combine(BuildEnvironment.TestRootPath, id + "_root"); @@ -71,3 +60,115 @@ public async Task CanNewAndBuild(string templateName, string extraTestCreationAr } } } + +public class NUnit_NewUpAndBuildSupportProjectTemplatesTests : NewUpAndBuildSupportProjectTemplatesBase +{ + public NUnit_NewUpAndBuildSupportProjectTemplatesTests(ITestOutputHelper testOutput) : base(testOutput) + { + } + + [Theory] + [MemberData(nameof(TestDataForNewAndBuildTemplateTests), arguments: ["aspire-nunit", ""])] + public Task CanNewAndBuild(string templateName, string extraTestCreationArgs, TestSdk sdk, TestTargetFramework tfm, string? error) + { + return CanNewAndBuildActual(templateName, extraTestCreationArgs, sdk, tfm, error); + } +} + +public class XUnit_Default_NewUpAndBuildSupportProjectTemplatesTests : NewUpAndBuildSupportProjectTemplatesBase +{ + public XUnit_Default_NewUpAndBuildSupportProjectTemplatesTests(ITestOutputHelper testOutput) : base(testOutput) + { + } + + [Theory] + [MemberData(nameof(TestDataForNewAndBuildTemplateTests), arguments: ["aspire-xunit", ""])] + public Task CanNewAndBuild(string templateName, string extraTestCreationArgs, TestSdk sdk, TestTargetFramework tfm, string? error) + { + return CanNewAndBuildActual(templateName, extraTestCreationArgs, sdk, tfm, error); + } +} + +public class XUnit_V2_NewUpAndBuildSupportProjectTemplatesTests : NewUpAndBuildSupportProjectTemplatesBase +{ + public XUnit_V2_NewUpAndBuildSupportProjectTemplatesTests(ITestOutputHelper testOutput) : base(testOutput) + { + } + + [Theory] + [MemberData(nameof(TestDataForNewAndBuildTemplateTests), arguments: ["aspire-xunit", "--xunit-version v2"])] + public Task CanNewAndBuild(string templateName, string extraTestCreationArgs, TestSdk sdk, TestTargetFramework tfm, string? error) + { + return CanNewAndBuildActual(templateName, extraTestCreationArgs, sdk, tfm, error); + } +} + +public class XUnit_V3_NewUpAndBuildSupportProjectTemplatesTests : NewUpAndBuildSupportProjectTemplatesBase +{ + public XUnit_V3_NewUpAndBuildSupportProjectTemplatesTests(ITestOutputHelper testOutput) : base(testOutput) + { + } + + [Theory] + [MemberData(nameof(TestDataForNewAndBuildTemplateTests), arguments: ["aspire-xunit", "--xunit-version v3"])] + public Task CanNewAndBuild(string templateName, string extraTestCreationArgs, TestSdk sdk, TestTargetFramework tfm, string? error) + { + return CanNewAndBuildActual(templateName, extraTestCreationArgs, sdk, tfm, error); + } +} + +public class XUnit_V3MTP_NewUpAndBuildSupportProjectTemplatesTests : NewUpAndBuildSupportProjectTemplatesBase +{ + public XUnit_V3MTP_NewUpAndBuildSupportProjectTemplatesTests(ITestOutputHelper testOutput) : base(testOutput) + { + } + + [Theory] + [MemberData(nameof(TestDataForNewAndBuildTemplateTests), arguments: ["aspire-xunit", "--xunit-version v3mtp"])] + public Task CanNewAndBuild(string templateName, string extraTestCreationArgs, TestSdk sdk, TestTargetFramework tfm, string? error) + { + return CanNewAndBuildActual(templateName, extraTestCreationArgs, sdk, tfm, error); + } +} + +public class XUnit_AspireVersion93_NewUpAndBuildSupportProjectTemplatesTests : NewUpAndBuildSupportProjectTemplatesBase +{ + public XUnit_AspireVersion93_NewUpAndBuildSupportProjectTemplatesTests(ITestOutputHelper testOutput) : base(testOutput) + { + } + + [Theory] + [MemberData(nameof(TestDataForNewAndBuildTemplateTests), arguments: ["aspire-xunit", "--aspire-version 9.3"])] + public Task CanNewAndBuild(string templateName, string extraTestCreationArgs, TestSdk sdk, TestTargetFramework tfm, string? error) + { + return CanNewAndBuildActual(templateName, extraTestCreationArgs, sdk, tfm, error); + } +} + +public class XUnit_AspireVersion94_NewUpAndBuildSupportProjectTemplatesTests : NewUpAndBuildSupportProjectTemplatesBase +{ + public XUnit_AspireVersion94_NewUpAndBuildSupportProjectTemplatesTests(ITestOutputHelper testOutput) : base(testOutput) + { + } + + [Theory] + [MemberData(nameof(TestDataForNewAndBuildTemplateTests), arguments: ["aspire-xunit", "--aspire-version 9.4"])] + public Task CanNewAndBuild(string templateName, string extraTestCreationArgs, TestSdk sdk, TestTargetFramework tfm, string? error) + { + return CanNewAndBuildActual(templateName, extraTestCreationArgs, sdk, tfm, error); + } +} + +public class MSTest_NewUpAndBuildSupportProjectTemplatesTests : NewUpAndBuildSupportProjectTemplatesBase +{ + public MSTest_NewUpAndBuildSupportProjectTemplatesTests(ITestOutputHelper testOutput) : base(testOutput) + { + } + + [Theory] + [MemberData(nameof(TestDataForNewAndBuildTemplateTests), arguments: ["aspire-mstest", ""])] + public Task CanNewAndBuild(string templateName, string extraTestCreationArgs, TestSdk sdk, TestTargetFramework tfm, string? error) + { + return CanNewAndBuildActual(templateName, extraTestCreationArgs, sdk, tfm, error); + } +} From 4e226e25f0e0384b213ad3178c773db0908d2103 Mon Sep 17 00:00:00 2001 From: Ankit Jain Date: Thu, 10 Jul 2025 15:00:03 -0400 Subject: [PATCH 2/2] Update tests/Aspire.Templates.Tests/NewUpAndBuildSupportProjectTemplatesTests.cs Co-authored-by: Eric Erhardt --- .../NewUpAndBuildSupportProjectTemplatesTests.cs | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/tests/Aspire.Templates.Tests/NewUpAndBuildSupportProjectTemplatesTests.cs b/tests/Aspire.Templates.Tests/NewUpAndBuildSupportProjectTemplatesTests.cs index e173a1b343b..9591d7910c9 100644 --- a/tests/Aspire.Templates.Tests/NewUpAndBuildSupportProjectTemplatesTests.cs +++ b/tests/Aspire.Templates.Tests/NewUpAndBuildSupportProjectTemplatesTests.cs @@ -61,12 +61,8 @@ protected async Task CanNewAndBuildActual(string templateName, string extraTestC } } -public class NUnit_NewUpAndBuildSupportProjectTemplatesTests : NewUpAndBuildSupportProjectTemplatesBase +public class NUnit_NewUpAndBuildSupportProjectTemplatesTests(ITestOutputHelper testOutput) : NewUpAndBuildSupportProjectTemplatesBase(testOutput) { - public NUnit_NewUpAndBuildSupportProjectTemplatesTests(ITestOutputHelper testOutput) : base(testOutput) - { - } - [Theory] [MemberData(nameof(TestDataForNewAndBuildTemplateTests), arguments: ["aspire-nunit", ""])] public Task CanNewAndBuild(string templateName, string extraTestCreationArgs, TestSdk sdk, TestTargetFramework tfm, string? error)