Skip to content

Update GetAssetsToGenerate to be always single asset#7576

Open
Youssef1313 wants to merge 3 commits intomainfrom
dev/ygerges/getassetstogen
Open

Update GetAssetsToGenerate to be always single asset#7576
Youssef1313 wants to merge 3 commits intomainfrom
dev/ygerges/getassetstogen

Conversation

@Youssef1313
Copy link
Member

No description provided.

Copilot AI review requested due to automatic review settings March 19, 2026 21:10
@Youssef1313 Youssef1313 marked this pull request as ready for review March 19, 2026 21:12
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

This PR updates the test-asset generation infrastructure so each TestAssetFixtureBase generates/builds a single asset instead of a collection, and adjusts many integration-test fixtures accordingly.

Changes:

  • Changed TestAssetFixtureBase.InitializeAsync to generate/build exactly one asset.
  • Changed GetAssetsToGenerate from IEnumerable<(string ID, string Name, string Code)> to a single (string ID, string Name, string Code) tuple.
  • Updated many acceptance/integration test fixtures to match the new GetAssetsToGenerate signature.

Reviewed changes

Copilot reviewed 89 out of 89 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
test/Utilities/Microsoft.Testing.TestInfrastructure/TestAssetFixtureBase.cs Switches asset generation from “many” to a single asset and updates the abstract contract.
test/IntegrationTests/Microsoft.Testing.Platform.Acceptance.IntegrationTests/AbortionTests.cs Updates fixture override to the new single-asset signature.
test/IntegrationTests/Microsoft.Testing.Platform.Acceptance.IntegrationTests/ConsoleTests.cs Updates fixture override to the new single-asset signature.
test/IntegrationTests/Microsoft.Testing.Platform.Acceptance.IntegrationTests/CrashDumpTests.cs Updates fixture override to the new single-asset signature.
test/IntegrationTests/Microsoft.Testing.Platform.Acceptance.IntegrationTests/CrashPlusHangDumpTests.cs Updates fixture override to the new single-asset signature.
test/IntegrationTests/Microsoft.Testing.Platform.Acceptance.IntegrationTests/CustomBannerTests.cs Updates fixture override to the new single-asset signature.
test/IntegrationTests/Microsoft.Testing.Platform.Acceptance.IntegrationTests/DataConsumerThroughputTests.cs Updates fixture override; file header now includes UTF-8 BOM.
test/IntegrationTests/Microsoft.Testing.Platform.Acceptance.IntegrationTests/DiagnosticTests.cs Updates fixture override to the new single-asset signature.
test/IntegrationTests/Microsoft.Testing.Platform.Acceptance.IntegrationTests/EnvironmentVariablesConfigurationProviderTests.cs Updates fixture override to the new single-asset signature.
test/IntegrationTests/Microsoft.Testing.Platform.Acceptance.IntegrationTests/ExecutionRequestCompleteTests.cs Updates fixture override; file header now includes UTF-8 BOM.
test/IntegrationTests/Microsoft.Testing.Platform.Acceptance.IntegrationTests/ExecutionTests.cs Updates fixture override to the new single-asset signature.
test/IntegrationTests/Microsoft.Testing.Platform.Acceptance.IntegrationTests/ExitOnProcessExitTests.cs Updates fixture override to the new single-asset signature.
test/IntegrationTests/Microsoft.Testing.Platform.Acceptance.IntegrationTests/ForwardCompatibilityTests.cs Updates fixture override to the new single-asset signature.
test/IntegrationTests/Microsoft.Testing.Platform.Acceptance.IntegrationTests/HangDumpOutputTests.cs Updates fixture override to the new single-asset signature.
test/IntegrationTests/Microsoft.Testing.Platform.Acceptance.IntegrationTests/HangDumpProcessTreeTests.cs Updates fixture override to the new single-asset signature.
test/IntegrationTests/Microsoft.Testing.Platform.Acceptance.IntegrationTests/HangDumpTests.cs Updates fixture override to the new single-asset signature.
test/IntegrationTests/Microsoft.Testing.Platform.Acceptance.IntegrationTests/HelpInfoAllExtensionsTests.cs Updates fixture override to the new single-asset signature.
test/IntegrationTests/Microsoft.Testing.Platform.Acceptance.IntegrationTests/HelpInfoTests.cs Updates fixture override to the new single-asset signature.
test/IntegrationTests/Microsoft.Testing.Platform.Acceptance.IntegrationTests/LocalizationFailingTests.cs Updates fixture override to the new single-asset signature.
test/IntegrationTests/Microsoft.Testing.Platform.Acceptance.IntegrationTests/LocalizationTests.cs Updates fixture override to the new single-asset signature.
test/IntegrationTests/Microsoft.Testing.Platform.Acceptance.IntegrationTests/MaxFailedTestsExtensionTests.cs Updates fixture override to the new single-asset signature.
test/IntegrationTests/Microsoft.Testing.Platform.Acceptance.IntegrationTests/NoBannerTests.cs Updates fixture override to the new single-asset signature.
test/IntegrationTests/Microsoft.Testing.Platform.Acceptance.IntegrationTests/RetryFailedTestsTests.cs Updates fixture override to the new single-asset signature.
test/IntegrationTests/Microsoft.Testing.Platform.Acceptance.IntegrationTests/ServerLoggingTests.cs Updates fixture override to the new single-asset signature.
test/IntegrationTests/Microsoft.Testing.Platform.Acceptance.IntegrationTests/TelemetryDisabledTests.cs Updates fixture override; file header now includes UTF-8 BOM.
test/IntegrationTests/Microsoft.Testing.Platform.Acceptance.IntegrationTests/TelemetryTests.cs Updates fixture override to the new single-asset signature.
test/IntegrationTests/Microsoft.Testing.Platform.Acceptance.IntegrationTests/TestHostProcessLifetimeHandlerTests.cs Updates fixture override to the new single-asset signature.
test/IntegrationTests/Microsoft.Testing.Platform.Acceptance.IntegrationTests/TimeoutTests.cs Updates fixture override to the new single-asset signature.
test/IntegrationTests/Microsoft.Testing.Platform.Acceptance.IntegrationTests/TrxDataRowTests.cs Updates fixture override to the new single-asset signature.
test/IntegrationTests/Microsoft.Testing.Platform.Acceptance.IntegrationTests/TrxFailingTestTests.cs Updates fixture override to the new single-asset signature.
test/IntegrationTests/Microsoft.Testing.Platform.Acceptance.IntegrationTests/TrxSkippedTestTests.cs Updates fixture override to the new single-asset signature.
test/IntegrationTests/Microsoft.Testing.Platform.Acceptance.IntegrationTests/TrxTests.cs Updates fixture override to the new single-asset signature.
test/IntegrationTests/Microsoft.Testing.Platform.Acceptance.IntegrationTests/UnhandledExceptionPolicyTests.cs Updates fixture override to the new single-asset signature.
test/IntegrationTests/MSTest.Acceptance.IntegrationTests/AbortionTests.cs Updates fixture override to the new single-asset signature.
test/IntegrationTests/MSTest.Acceptance.IntegrationTests/AppDomainTests.cs Updates fixture override to the new single-asset signature.
test/IntegrationTests/MSTest.Acceptance.IntegrationTests/AspireSdkTests.cs Updates fixture override to the new single-asset signature.
test/IntegrationTests/MSTest.Acceptance.IntegrationTests/AssemblyCleanupTests.cs Updates fixture override to the new single-asset signature.
test/IntegrationTests/MSTest.Acceptance.IntegrationTests/AssemblyResolverTests.cs Updates fixture override to the new single-asset signature.
test/IntegrationTests/MSTest.Acceptance.IntegrationTests/CancellationTests.cs Updates fixture override to the new single-asset signature.
test/IntegrationTests/MSTest.Acceptance.IntegrationTests/ConfigurationMSTestSettingsTests.cs Updates fixture override; file header now includes UTF-8 BOM.
test/IntegrationTests/MSTest.Acceptance.IntegrationTests/ConfigurationMSTestV2SettingsTests.cs Updates fixture override; file header now includes UTF-8 BOM.
test/IntegrationTests/MSTest.Acceptance.IntegrationTests/ConfigurationSettingsTests.cs Updates fixture override to the new single-asset signature.
test/IntegrationTests/MSTest.Acceptance.IntegrationTests/CustomAttributesTests.cs Updates fixture override; file header now includes UTF-8 BOM.
test/IntegrationTests/MSTest.Acceptance.IntegrationTests/DeadlockTests.cs Updates fixture override to the new single-asset signature.
test/IntegrationTests/MSTest.Acceptance.IntegrationTests/DeploymentItemTests.cs Updates fixture override to the new single-asset signature.
test/IntegrationTests/MSTest.Acceptance.IntegrationTests/DuplicateTestClassAttributeTests.cs Updates fixture override; file header now includes UTF-8 BOM.
test/IntegrationTests/MSTest.Acceptance.IntegrationTests/DynamicDataMethodTests.cs Updates fixture override to the new single-asset signature.
test/IntegrationTests/MSTest.Acceptance.IntegrationTests/FrameworkOnlyTests.cs Updates fixture override to the new single-asset signature.
test/IntegrationTests/MSTest.Acceptance.IntegrationTests/GenericTestMethodTests.cs Updates fixture override to the new single-asset signature.
test/IntegrationTests/MSTest.Acceptance.IntegrationTests/HelpInfoTests.cs Updates fixture override to the new single-asset signature.
test/IntegrationTests/MSTest.Acceptance.IntegrationTests/IgnoreTests.cs Updates fixture override to the new single-asset signature.
test/IntegrationTests/MSTest.Acceptance.IntegrationTests/InconclusiveTests.cs Updates fixture override to the new single-asset signature.
test/IntegrationTests/MSTest.Acceptance.IntegrationTests/LeakTests.cs Updates fixture override to the new single-asset signature.
test/IntegrationTests/MSTest.Acceptance.IntegrationTests/LifecycleAttributesTaskThreadingTests.cs Updates fixture override to the new single-asset signature.
test/IntegrationTests/MSTest.Acceptance.IntegrationTests/LifecycleAttributesValueTaskThreadingTests.cs Updates fixture override; file header now includes UTF-8 BOM.
test/IntegrationTests/MSTest.Acceptance.IntegrationTests/LifecycleAttributesVoidThreadingTests.cs Updates fixture override; file header now includes UTF-8 BOM.
test/IntegrationTests/MSTest.Acceptance.IntegrationTests/LifecycleTests.cs Updates fixture override to the new single-asset signature.
test/IntegrationTests/MSTest.Acceptance.IntegrationTests/LifecycleWithParallelAttributesTaskThreadingTests.cs Updates fixture override; file header now includes UTF-8 BOM.
test/IntegrationTests/MSTest.Acceptance.IntegrationTests/MaxFailedTestsExtensionTests.cs Updates fixture override to the new single-asset signature.
test/IntegrationTests/MSTest.Acceptance.IntegrationTests/OutputTests.cs Updates fixture override to the new single-asset signature.
test/IntegrationTests/MSTest.Acceptance.IntegrationTests/ParameterizedDataSourceTests.cs Updates fixture override to the new single-asset signature.
test/IntegrationTests/MSTest.Acceptance.IntegrationTests/ParameterizedDataRowTests.cs Updates fixture override to the new single-asset signature.
test/IntegrationTests/MSTest.Acceptance.IntegrationTests/ParameterizedTestTests.cs Updates fixture override to the new single-asset signature.
test/IntegrationTests/MSTest.Acceptance.IntegrationTests/PlaywrightSdkTests.cs Updates fixture override to the new single-asset signature.
test/IntegrationTests/MSTest.Acceptance.IntegrationTests/RetryTests.cs Updates fixture override to the new single-asset signature.
test/IntegrationTests/MSTest.Acceptance.IntegrationTests/RunsettingsTests.cs Updates fixture override to the new single-asset signature.
test/IntegrationTests/MSTest.Acceptance.IntegrationTests/STAThreadingTests.cs Updates fixture override; file header now includes UTF-8 BOM.
test/IntegrationTests/MSTest.Acceptance.IntegrationTests/STATestClassCooperativeTimeoutTests.cs Updates fixture override to the new single-asset signature.
test/IntegrationTests/MSTest.Acceptance.IntegrationTests/STATestClassTests.cs Updates fixture override to the new single-asset signature.
test/IntegrationTests/MSTest.Acceptance.IntegrationTests/STATestClassTimeoutTests.cs Updates fixture override to the new single-asset signature.
test/IntegrationTests/MSTest.Acceptance.IntegrationTests/STATestMethodCooperativeTimeoutTests.cs Updates fixture override to the new single-asset signature.
test/IntegrationTests/MSTest.Acceptance.IntegrationTests/STATestMethodTests.cs Updates fixture override to the new single-asset signature.
test/IntegrationTests/MSTest.Acceptance.IntegrationTests/STATestMethodTimeoutTests.cs Updates fixture override to the new single-asset signature.
test/IntegrationTests/MSTest.Acceptance.IntegrationTests/ServerModeTests.cs Updates fixture override to the new single-asset signature.
test/IntegrationTests/MSTest.Acceptance.IntegrationTests/SynchronizationContextTests.cs Updates fixture override to the new single-asset signature.
test/IntegrationTests/MSTest.Acceptance.IntegrationTests/TestContextTests.cs Updates fixture override to the new single-asset signature.
test/IntegrationTests/MSTest.Acceptance.IntegrationTests/TestDiscoveryTests.cs Updates fixture override to the new single-asset signature.
test/IntegrationTests/MSTest.Acceptance.IntegrationTests/TestDiscoveryWarningsTests.cs Updates fixture override to the new single-asset signature.
test/IntegrationTests/MSTest.Acceptance.IntegrationTests/TestFilterTests.cs Updates fixture override to the new single-asset signature.
test/IntegrationTests/MSTest.Acceptance.IntegrationTests/TestRunParametersTests.cs Updates fixture override to the new single-asset signature.
test/IntegrationTests/MSTest.Acceptance.IntegrationTests/ThreadContextCultureFlowsInheritanceTests.cs Updates fixture override to the new single-asset signature.
test/IntegrationTests/MSTest.Acceptance.IntegrationTests/ThreadContextCultureFlowsTests.cs Updates fixture override to the new single-asset signature.
test/IntegrationTests/MSTest.Acceptance.IntegrationTests/ThreadContextTests.cs Updates fixture override to the new single-asset signature.
test/IntegrationTests/MSTest.Acceptance.IntegrationTests/ThreadingTests.cs Updates fixture override to the new single-asset signature.
test/IntegrationTests/MSTest.Acceptance.IntegrationTests/TimeoutTests.cs Updates fixture override to the new single-asset signature.
test/IntegrationTests/MSTest.Acceptance.IntegrationTests/TrxReportTests.cs Updates fixture override to the new single-asset signature.
test/IntegrationTests/MSTest.Acceptance.IntegrationTests/TupleDynamicDataTests.cs Updates fixture override to the new single-asset signature.
test/IntegrationTests/MSTest.Acceptance.IntegrationTests/ValueTaskTests.cs Updates fixture override to the new single-asset signature.
test/IntegrationTests/MSTest.Acceptance.IntegrationTests/WinUITests.cs Updates fixture override to the new single-asset signature.
Comments suppressed due to low confidence (17)

test/IntegrationTests/MSTest.Acceptance.IntegrationTests/RunsettingsTests.cs:105

  • GetAssetsToGenerate has a tuple return type but still uses yield return, which requires an iterator return type and will not compile. Replace with a direct return ( ... ) and remove yield.
    test/IntegrationTests/MSTest.Acceptance.IntegrationTests/STATestClassCooperativeTimeoutTests.cs:70
  • GetAssetsToGenerate returns a tuple but still uses yield return, which will not compile. Replace the iterator body with a direct return ( ... ) and remove yield.
    test/IntegrationTests/MSTest.Acceptance.IntegrationTests/STATestClassTests.cs:70
  • GetAssetsToGenerate has a tuple return type but still uses yield return, which will not compile. Replace with a direct return ( ... ) and remove yield.
    test/IntegrationTests/MSTest.Acceptance.IntegrationTests/TrxReportTests.cs:56
  • GetAssetsToGenerate returns a tuple but still uses yield return, which will not compile. Replace the iterator body with a direct return ( ... ) and remove yield.
    test/IntegrationTests/Microsoft.Testing.Platform.Acceptance.IntegrationTests/HangDumpProcessTreeTests.cs:40
  • GetAssetsToGenerate now returns a single tuple, but the implementation still uses yield return, which requires an iterator return type and will not compile. Replace the iterator block with a direct return ( ... ) (or expression-bodied member) and remove yield usage.
    test/IntegrationTests/Microsoft.Testing.Platform.Acceptance.IntegrationTests/HelpInfoAllExtensionsTests.cs:469
  • GetAssetsToGenerate has a tuple return type but still uses yield return, which won't compile. Replace the iterator body with a direct return ( ... ) and remove yield.
    test/IntegrationTests/MSTest.Acceptance.IntegrationTests/AssemblyCleanupTests.cs:41
  • GetAssetsToGenerate has been changed to return a single tuple, but this override still uses yield return and will not compile. Replace with a direct return ( ... ) and remove yield.
        public override (string ID, string Name, string Code) GetAssetsToGenerate()
        {
            yield return (ProjectName, ProjectName,
                SourceCode
                .PatchTargetFrameworks(TargetFrameworks.All)
                .PatchCodeWithReplace("$MSTestVersion$", MSTestVersion));
        }

test/IntegrationTests/MSTest.Acceptance.IntegrationTests/DynamicDataMethodTests.cs:66

  • GetAssetsToGenerate returns a tuple but the implementation still uses yield return, which will not compile. Replace with a direct return ( ... ) and remove yield.
        public override (string ID, string Name, string Code) GetAssetsToGenerate()
        {
            yield return (ProjectName, ProjectName,
                SourceCode
                .PatchTargetFrameworks(TargetFrameworks.All)
                .PatchCodeWithReplace("$MSTestVersion$", MSTestVersion));
        }

test/IntegrationTests/MSTest.Acceptance.IntegrationTests/LifecycleAttributesValueTaskThreadingTests.cs:41

  • GetAssetsToGenerate returns a tuple but this override still uses yield return, which will not compile. Replace the iterator body with a direct return ( ... ) and remove yield.
        public override (string ID, string Name, string Code) GetAssetsToGenerate()
        {
            yield return (ProjectName, ProjectName,
                SourceCode
                .PatchTargetFrameworks(TargetFrameworks.Net)
                .PatchCodeWithReplace("$MSTestVersion$", MSTestVersion));
        }

test/IntegrationTests/MSTest.Acceptance.IntegrationTests/ParameterizedDataRowTests.cs:43

  • GetAssetsToGenerate now returns a tuple, but this override still uses yield return, which will not compile. Replace with a direct return ( ... ) and remove yield.
        public override (string ID, string Name, string Code) GetAssetsToGenerate()
        {
            yield return (DataRowAssetName, DataRowAssetName,
                SourceCodeDataRow
                .PatchTargetFrameworks(TargetFrameworks.All)
                .PatchCodeWithReplace("$MSTestVersion$", MSTestVersion));
        }

test/IntegrationTests/MSTest.Acceptance.IntegrationTests/TimeoutTests.cs:1066

  • GetAssetsToGenerate mixes a direct return with subsequent yield return statements. This won’t compile, and it also indicates this fixture still needs multiple assets (several GetAssetPath(...) properties above). Either refactor this test to package everything into a single generated asset/project, or revert the fixture API to support multiple assets.
    test/IntegrationTests/Microsoft.Testing.Platform.Acceptance.IntegrationTests/LocalizationFailingTests.cs:126
  • GetAssetsToGenerate now returns a single tuple, but this implementation still uses yield return, which will not compile. Replace with a direct return ( ... ) and remove yield.
    test/IntegrationTests/Microsoft.Testing.Platform.Acceptance.IntegrationTests/TestHostProcessLifetimeHandlerTests.cs:142
  • GetAssetsToGenerate returns a tuple but still uses yield return, which requires an iterator return type and will not compile. Replace the iterator block with a direct return ( ... ) and remove yield.
    test/IntegrationTests/MSTest.Acceptance.IntegrationTests/InconclusiveTests.cs:127
  • GetAssetsToGenerate now returns a single tuple, but this override still uses yield return, which will not compile. Replace with a direct return ( ... ) and remove yield.
        public override (string ID, string Name, string Code) GetAssetsToGenerate()
        {
            yield return (ProjectName, ProjectName,
                SourceCode
                .PatchTargetFrameworks(TargetFrameworks.NetCurrent)
                .PatchCodeWithReplace("$MSTestVersion$", MSTestVersion));
        }

test/IntegrationTests/MSTest.Acceptance.IntegrationTests/WinUITests.cs:45

  • This override still uses yield break/yield return, but GetAssetsToGenerate now returns a tuple, so the method cannot be an iterator and will not compile. If the intent is to skip asset generation on non-Windows, the base/fixture API needs to represent “no asset” (e.g., nullable/optional asset), or the OS gating needs to move to a place that prevents InitializeAsync from running (instead of yield break).
    test/IntegrationTests/MSTest.Acceptance.IntegrationTests/ConfigurationSettingsTests.cs:97
  • GetAssetsToGenerate now returns a tuple, but this override still uses yield return, which will not compile. Replace the iterator body with a direct return ( ... ) and remove yield.
        public override (string ID, string Name, string Code) GetAssetsToGenerate()
        {
            yield return (ProjectName, ProjectName,
                SourceCode
                .PatchTargetFrameworks(TargetFrameworks.All)
                .PatchCodeWithReplace("$ProjectName$", ProjectName)
                .PatchCodeWithReplace("$MSTestVersion$", MSTestVersion)
                .PatchCodeWithReplace("$AppendSettings$", string.Empty));
        }

test/IntegrationTests/MSTest.Acceptance.IntegrationTests/IgnoreTests.cs:121

  • GetAssetsToGenerate has a tuple return type but still uses yield return, which requires an iterator return type and will not compile. Replace with a direct return ( ... ) and remove yield.
        public override (string ID, string Name, string Code) GetAssetsToGenerate()
        {
            yield return (ProjectName, ProjectName,
                SourceCode
                .PatchTargetFrameworks(TargetFrameworks.NetCurrent)
                .PatchCodeWithReplace("$MSTestVersion$", MSTestVersion));
        }

@Youssef1313 Youssef1313 force-pushed the dev/ygerges/getassetstogen branch from ec3f58b to ddd4210 Compare March 19, 2026 22:42
Copilot AI review requested due to automatic review settings March 20, 2026 09:48
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 89 out of 89 changed files in this pull request and generated 3 comments.

Comments suppressed due to low confidence (16)

test/IntegrationTests/MSTest.Acceptance.IntegrationTests/IgnoreTests.cs:120

  • GetAssetsToGenerate now returns a single tuple (not an iterator), but this method still uses yield return, which will not compile. Convert to a direct tuple return.
        public override (string ID, string Name, string Code) GetAssetsToGenerate()
        {
            yield return (ProjectName, ProjectName,
                SourceCode
                .PatchTargetFrameworks(TargetFrameworks.NetCurrent)
                .PatchCodeWithReplace("$MSTestVersion$", MSTestVersion));

test/IntegrationTests/MSTest.Acceptance.IntegrationTests/LifecycleAttributesValueTaskThreadingTests.cs:40

  • GetAssetsToGenerate now returns a single tuple, but the method body still uses yield return, which will not compile. Update to return the tuple directly.
        public override (string ID, string Name, string Code) GetAssetsToGenerate()
        {
            yield return (ProjectName, ProjectName,
                SourceCode
                .PatchTargetFrameworks(TargetFrameworks.Net)
                .PatchCodeWithReplace("$MSTestVersion$", MSTestVersion));

test/IntegrationTests/MSTest.Acceptance.IntegrationTests/ParameterizedDataRowTests.cs:42

  • GetAssetsToGenerate now returns a single tuple, but the implementation still uses yield return (iterator syntax), which will not compile. Convert this to a direct tuple return.
        public override (string ID, string Name, string Code) GetAssetsToGenerate()
        {
            yield return (DataRowAssetName, DataRowAssetName,
                SourceCodeDataRow
                .PatchTargetFrameworks(TargetFrameworks.All)
                .PatchCodeWithReplace("$MSTestVersion$", MSTestVersion));

test/IntegrationTests/MSTest.Acceptance.IntegrationTests/WinUITests.cs:39

  • GetAssetsToGenerate now returns a single tuple (not an iterator), but this method still uses iterator statements (yield break / yield return), which will not compile. Additionally, this fixture needs a way to skip asset generation on non-Windows without failing during InitializeAsync (e.g., allow 0 assets, or make the asset return optional).
    test/IntegrationTests/Microsoft.Testing.Platform.Acceptance.IntegrationTests/TestHostProcessLifetimeHandlerTests.cs:141
  • GetAssetsToGenerate now returns a single tuple (not an iterator), but the method body still uses yield return, which will not compile. Replace the iterator implementation with a direct tuple return (or adjust the base contract back to an IEnumerable if multiple/conditional assets are required).
    test/IntegrationTests/Microsoft.Testing.Platform.Acceptance.IntegrationTests/HelpInfoAllExtensionsTests.cs:468
  • GetAssetsToGenerate now returns a single tuple (not an iterator), but this method still uses yield return, which will not compile. Update to return the tuple directly (or keep the previous IEnumerable contract).
    test/IntegrationTests/Microsoft.Testing.Platform.Acceptance.IntegrationTests/LocalizationFailingTests.cs:125
  • GetAssetsToGenerate now returns a single tuple (not an iterator), but the implementation still uses yield return, which will not compile. Convert to a direct tuple return (or revert the base method back to IEnumerable if you still need iterator semantics).
    test/IntegrationTests/MSTest.Acceptance.IntegrationTests/ConfigurationSettingsTests.cs:93
  • GetAssetsToGenerate now returns a single tuple, but this method still uses yield return (iterator syntax), which will not compile. Update this to return the tuple directly.
        public override (string ID, string Name, string Code) GetAssetsToGenerate()
        {
            yield return (ProjectName, ProjectName,
                SourceCode
                .PatchTargetFrameworks(TargetFrameworks.All)

test/IntegrationTests/MSTest.Acceptance.IntegrationTests/STATestClassTests.cs:69

  • GetAssetsToGenerate now returns a single tuple, but the implementation still uses yield return (iterator syntax), which will not compile. Convert this to a direct tuple return.
    test/IntegrationTests/MSTest.Acceptance.IntegrationTests/AssemblyCleanupTests.cs:40
  • GetAssetsToGenerate now returns a single tuple (not an iterator), but the implementation still uses yield return, which will not compile. Replace with a direct tuple return (or revert the base method signature back to IEnumerable if iterator semantics are needed).
        public override (string ID, string Name, string Code) GetAssetsToGenerate()
        {
            yield return (ProjectName, ProjectName,
                SourceCode
                .PatchTargetFrameworks(TargetFrameworks.All)
                .PatchCodeWithReplace("$MSTestVersion$", MSTestVersion));

test/IntegrationTests/MSTest.Acceptance.IntegrationTests/RunsettingsTests.cs:104

  • GetAssetsToGenerate now returns a single tuple, but the implementation still uses yield return, which will not compile. Update this method to return the tuple directly.
    test/IntegrationTests/MSTest.Acceptance.IntegrationTests/STATestClassCooperativeTimeoutTests.cs:69
  • GetAssetsToGenerate now returns a single tuple, but this method still uses yield return, which will not compile. Replace with a direct tuple return.
    test/IntegrationTests/MSTest.Acceptance.IntegrationTests/TrxReportTests.cs:55
  • GetAssetsToGenerate now returns a single tuple, but the method body still uses yield return, which will not compile. Update to return the tuple directly.
    test/IntegrationTests/MSTest.Acceptance.IntegrationTests/InconclusiveTests.cs:126
  • GetAssetsToGenerate now returns a single tuple, but the implementation still uses yield return (iterator syntax), which will not compile. Replace with a direct tuple return.
        public override (string ID, string Name, string Code) GetAssetsToGenerate()
        {
            yield return (ProjectName, ProjectName,
                SourceCode
                .PatchTargetFrameworks(TargetFrameworks.NetCurrent)
                .PatchCodeWithReplace("$MSTestVersion$", MSTestVersion));

test/IntegrationTests/Microsoft.Testing.Platform.Acceptance.IntegrationTests/HangDumpProcessTreeTests.cs:39

  • GetAssetsToGenerate now returns a single tuple (not an iterator), but the implementation still uses yield return, which will not compile. Convert this to a direct tuple return (or restore an IEnumerable-based contract).
    test/IntegrationTests/MSTest.Acceptance.IntegrationTests/DynamicDataMethodTests.cs:65
  • GetAssetsToGenerate now returns a single tuple, but the implementation still uses yield return, which will not compile. Replace this iterator block with a direct tuple return.
        public override (string ID, string Name, string Code) GetAssetsToGenerate()
        {
            yield return (ProjectName, ProjectName,
                SourceCode
                .PatchTargetFrameworks(TargetFrameworks.All)
                .PatchCodeWithReplace("$MSTestVersion$", MSTestVersion));

Comment on lines +1020 to 1025
public override (string ID, string Name, string Code) GetAssetsToGenerate()
{
yield return (AssetName, AssetName,
return (AssetName, AssetName,
TestCode
.PatchTargetFrameworks(TargetFrameworks.All)
.PatchCodeWithReplace("$MSTestVersion$", MSTestVersion));
Copy link

Copilot AI Mar 20, 2026

Choose a reason for hiding this comment

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

This fixture previously generated multiple distinct assets (different project names) and still contains additional yield return statements later in GetAssetsToGenerate. With the new single-tuple return type, the method cannot use yield and only one asset can be generated, but the rest of the test class still references multiple asset paths. Please either keep multi-asset support in the base contract or refactor this test to use a single generated asset/project.

Copilot uses AI. Check for mistakes.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants