Skip to content

Fix deployment E2E tests: add --language csharp to aspire init#14958

Merged
davidfowl merged 1 commit intorelease/13.2from
FixDeploymentTests
Mar 5, 2026
Merged

Fix deployment E2E tests: add --language csharp to aspire init#14958
davidfowl merged 1 commit intorelease/13.2from
FixDeploymentTests

Conversation

@eerhardt
Copy link
Member

@eerhardt eerhardt commented Mar 5, 2026

Description

Fixes 12 broken deployment E2E tests that were timing out during aspire init.

Root cause: The aspire init command now shows a language selection prompt ("Which language would you like to use?") when multiple languages are available (C#, TypeScript). The failing tests did not handle this new prompt, causing them to timeout waiting for "Aspire initialization complete" after 2 minutes.

Fix: Add --language csharp to all aspire init calls in the 12 affected tests. This explicitly skips the language selection prompt, restoring the expected test flow.

Affected tests:

  • AcaCompactNamingDeploymentTests
  • AcaDeploymentErrorOutputTests
  • AzureAppConfigDeploymentTests
  • AzureContainerRegistryDeploymentTests
  • AzureEventHubsDeploymentTests
  • AzureKeyVaultDeploymentTests
  • AzureLogAnalyticsDeploymentTests
  • AzureServiceBusDeploymentTests
  • AzureStorageDeploymentTests
  • VnetKeyVaultInfraDeploymentTests
  • VnetSqlServerInfraDeploymentTests
  • VnetStorageBlobInfraDeploymentTests

Checklist

  • Is this feature complete?
    • Yes. Ready to ship.
    • No. Follow-up changes expected.
  • Are you including unit tests for the changes and scenario tests if relevant?
    • Yes
    • No
  • Did you add public API?
    • Yes
      • If yes, did you have an API Review for it?
        • Yes
        • No
      • Did you add <remarks /> and <code /> elements on your triple slash comments?
        • Yes
        • No
    • No
  • Does the change make any security assumptions or guarantees?
    • Yes
      • If yes, have you done a threat model and had a security review?
        • Yes
        • No
    • No
  • Does the change require an update in our Aspire docs?

The aspire init command now shows a language selection prompt when
multiple languages are available (C#, TypeScript). The 12 failing
deployment tests did not handle this new prompt, causing them to
timeout waiting for 'Aspire initialization complete'.

Adding --language csharp explicitly skips the language prompt,
restoring the expected test flow.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot AI review requested due to automatic review settings March 5, 2026 00:50
@github-actions
Copy link
Contributor

github-actions bot commented Mar 5, 2026

🚀 Dogfood this PR with:

⚠️ WARNING: Do not do this without first carefully reviewing the code of this PR to satisfy yourself it is safe.

curl -fsSL https://raw.githubusercontent.com/dotnet/aspire/main/eng/scripts/get-aspire-cli-pr.sh | bash -s -- 14958

Or

  • Run remotely in PowerShell:
iex "& { $(irm https://raw.githubusercontent.com/dotnet/aspire/main/eng/scripts/get-aspire-cli-pr.ps1) } 14958"

@github-actions
Copy link
Contributor

github-actions bot commented Mar 5, 2026

🚀 Deployment tests starting on PR #14958...

This will deploy to real Azure infrastructure. Results will be posted here when complete.

View workflow run

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

Updates Aspire deployment end-to-end tests to make aspire init non-blocking now that the CLI can prompt for language selection when multiple AppHost languages are available.

Changes:

  • Add --language csharp to aspire init invocations across the affected deployment E2E tests to bypass the new language prompt.
  • Restore the expected terminal automation flow so tests don’t time out waiting for initialization completion.

Reviewed changes

Copilot reviewed 12 out of 12 changed files in this pull request and generated no comments.

Show a summary per file
File Description
tests/Aspire.Deployment.EndToEnd.Tests/VnetStorageBlobInfraDeploymentTests.cs Adds explicit C# language selection to aspire init in the VNet+Storage Blob infra flow.
tests/Aspire.Deployment.EndToEnd.Tests/VnetSqlServerInfraDeploymentTests.cs Adds explicit C# language selection to aspire init in the VNet+SQL Server infra flow.
tests/Aspire.Deployment.EndToEnd.Tests/VnetKeyVaultInfraDeploymentTests.cs Adds explicit C# language selection to aspire init in the VNet+Key Vault infra flow.
tests/Aspire.Deployment.EndToEnd.Tests/AzureStorageDeploymentTests.cs Adds explicit C# language selection to aspire init to avoid the language prompt during setup.
tests/Aspire.Deployment.EndToEnd.Tests/AzureServiceBusDeploymentTests.cs Adds explicit C# language selection to aspire init to keep terminal automation deterministic.
tests/Aspire.Deployment.EndToEnd.Tests/AzureLogAnalyticsDeploymentTests.cs Adds explicit C# language selection to aspire init to prevent interactive blocking.
tests/Aspire.Deployment.EndToEnd.Tests/AzureKeyVaultDeploymentTests.cs Adds explicit C# language selection to aspire init to avoid new prompt-induced timeouts.
tests/Aspire.Deployment.EndToEnd.Tests/AzureEventHubsDeploymentTests.cs Adds explicit C# language selection to aspire init to restore expected flow.
tests/Aspire.Deployment.EndToEnd.Tests/AzureContainerRegistryDeploymentTests.cs Adds explicit C# language selection to aspire init to prevent hanging at language selection.
tests/Aspire.Deployment.EndToEnd.Tests/AzureAppConfigDeploymentTests.cs Adds explicit C# language selection to aspire init to skip language prompt.
tests/Aspire.Deployment.EndToEnd.Tests/AcaDeploymentErrorOutputTests.cs Adds explicit C# language selection to aspire init in the ACA error-output scenario.
tests/Aspire.Deployment.EndToEnd.Tests/AcaCompactNamingDeploymentTests.cs Adds explicit C# language selection to aspire init in the compact naming scenario.

@eerhardt eerhardt temporarily deployed to deployment-testing March 5, 2026 00:56 — with GitHub Actions Inactive
@eerhardt eerhardt temporarily deployed to deployment-testing March 5, 2026 00:56 — with GitHub Actions Inactive
@eerhardt eerhardt temporarily deployed to deployment-testing March 5, 2026 00:56 — with GitHub Actions Inactive
@eerhardt eerhardt temporarily deployed to deployment-testing March 5, 2026 00:56 — with GitHub Actions Inactive
@eerhardt eerhardt temporarily deployed to deployment-testing March 5, 2026 00:56 — with GitHub Actions Inactive
@eerhardt eerhardt temporarily deployed to deployment-testing March 5, 2026 00:56 — with GitHub Actions Inactive
@eerhardt eerhardt temporarily deployed to deployment-testing March 5, 2026 00:56 — with GitHub Actions Inactive
@eerhardt eerhardt temporarily deployed to deployment-testing March 5, 2026 00:56 — with GitHub Actions Inactive
@eerhardt eerhardt temporarily deployed to deployment-testing March 5, 2026 00:56 — with GitHub Actions Inactive
@eerhardt eerhardt temporarily deployed to deployment-testing March 5, 2026 00:56 — with GitHub Actions Inactive
@eerhardt eerhardt temporarily deployed to deployment-testing March 5, 2026 00:56 — with GitHub Actions Inactive
@eerhardt eerhardt temporarily deployed to deployment-testing March 5, 2026 00:56 — with GitHub Actions Inactive
@eerhardt eerhardt temporarily deployed to deployment-testing March 5, 2026 00:56 — with GitHub Actions Inactive
@eerhardt eerhardt temporarily deployed to deployment-testing March 5, 2026 00:56 — with GitHub Actions Inactive
@eerhardt eerhardt temporarily deployed to deployment-testing March 5, 2026 00:56 — with GitHub Actions Inactive
@eerhardt eerhardt temporarily deployed to deployment-testing March 5, 2026 00:56 — with GitHub Actions Inactive
@eerhardt eerhardt temporarily deployed to deployment-testing March 5, 2026 00:56 — with GitHub Actions Inactive
@eerhardt eerhardt temporarily deployed to deployment-testing March 5, 2026 00:56 — with GitHub Actions Inactive
@eerhardt eerhardt temporarily deployed to deployment-testing March 5, 2026 00:56 — with GitHub Actions Inactive
@eerhardt eerhardt temporarily deployed to deployment-testing March 5, 2026 00:56 — with GitHub Actions Inactive
@eerhardt eerhardt temporarily deployed to deployment-testing March 5, 2026 00:56 — with GitHub Actions Inactive
@eerhardt eerhardt temporarily deployed to deployment-testing March 5, 2026 00:56 — with GitHub Actions Inactive
@eerhardt eerhardt temporarily deployed to deployment-testing March 5, 2026 00:56 — with GitHub Actions Inactive
@eerhardt eerhardt temporarily deployed to deployment-testing March 5, 2026 00:56 — with GitHub Actions Inactive
@eerhardt eerhardt temporarily deployed to deployment-testing March 5, 2026 00:56 — with GitHub Actions Inactive
@github-actions
Copy link
Contributor

github-actions bot commented Mar 5, 2026

🎬 CLI E2E Test Recordings

The following terminal recordings are available for commit d677c3d:

Test Recording
AddPackageInteractiveWhileAppHostRunningDetached ▶️ View Recording
AddPackageWhileAppHostRunningDetached ▶️ View Recording
AgentCommands_AllHelpOutputs_AreCorrect ▶️ View Recording
AgentInitCommand_MigratesDeprecatedConfig ▶️ View Recording
AgentInitCommand_WithMalformedMcpJson_ShowsErrorAndExitsNonZero ▶️ View Recording
AspireUpdateRemovesAppHostPackageVersionFromDirectoryPackagesProps ▶️ View Recording
Banner_DisplayedOnFirstRun ▶️ View Recording
Banner_DisplayedWithExplicitFlag ▶️ View Recording
CreateAndDeployToDockerCompose ▶️ View Recording
CreateAndDeployToDockerComposeInteractive ▶️ View Recording
CreateAndPublishToKubernetes ▶️ View Recording
CreateAndRunAspireStarterProject ▶️ View Recording
CreateAndRunAspireStarterProjectWithBundle ▶️ View Recording
CreateAndRunJsReactProject ▶️ View Recording
CreateAndRunPythonReactProject ▶️ View Recording
CreateAndRunTypeScriptStarterProject ▶️ View Recording
CreateEmptyAppHostProject ▶️ View Recording
CreateStartAndStopAspireProject ▶️ View Recording
CreateStartWaitAndStopAspireProject ▶️ View Recording
CreateTypeScriptAppHostWithViteApp ▶️ View Recording
DescribeCommandResolvesReplicaNames ▶️ View Recording
DescribeCommandShowsRunningResources ▶️ View Recording
DetachFormatJsonProducesValidJson ▶️ View Recording
DoctorCommand_DetectsDeprecatedAgentConfig ▶️ View Recording
DoctorCommand_WithSslCertDir_ShowsTrusted ▶️ View Recording
DoctorCommand_WithoutSslCertDir_ShowsPartiallyTrusted ▶️ View Recording
LogsCommandShowsResourceLogs ▶️ View Recording
PsCommandListsRunningAppHost ▶️ View Recording
PsFormatJsonOutputsOnlyJsonToStdout ▶️ View Recording
SecretCrudOnDotNetAppHost ▶️ View Recording
SecretCrudOnTypeScriptAppHost ❌ Upload failed
StagingChannel_ConfigureAndVerifySettings_ThenSwitchChannels ❌ Upload failed
StopAllAppHostsFromAppHostDirectory ❌ Upload failed
StopAllAppHostsFromUnrelatedDirectory ▶️ View Recording
StopNonInteractiveMultipleAppHostsShowsError ▶️ View Recording
StopNonInteractiveSingleAppHost ▶️ View Recording
StopWithNoRunningAppHostExitsSuccessfully ❌ Upload failed
TypeScriptAppHostWithProjectReferenceIntegration ▶️ View Recording

📹 Recordings uploaded automatically from CI run #22696857726

@github-actions
Copy link
Contributor

github-actions bot commented Mar 5, 2026

Deployment E2E Tests passed

Summary: 25 passed, 0 failed, 0 cancelled

View workflow run

Passed Tests

  • ✅ Deployment.EndToEnd-PythonFastApiDeploymentTests
  • ✅ Deployment.EndToEnd-AcaCompactNamingDeploymentTests
  • ✅ Deployment.EndToEnd-AzureKeyVaultDeploymentTests
  • ✅ Deployment.EndToEnd-AzureStorageDeploymentTests
  • ✅ Deployment.EndToEnd-VnetKeyVaultConnectivityDeploymentTests
  • ✅ Deployment.EndToEnd-VnetSqlServerInfraDeploymentTests
  • ✅ Deployment.EndToEnd-AzureLogAnalyticsDeploymentTests
  • ✅ Deployment.EndToEnd-AzureAppConfigDeploymentTests
  • ✅ Deployment.EndToEnd-AzureContainerRegistryDeploymentTests
  • ✅ Deployment.EndToEnd-AzureServiceBusDeploymentTests
  • ✅ Deployment.EndToEnd-AcaStarterDeploymentTests
  • ✅ Deployment.EndToEnd-AppServiceReactDeploymentTests
  • ✅ Deployment.EndToEnd-AcaDeploymentErrorOutputTests
  • ✅ Deployment.EndToEnd-AzureEventHubsDeploymentTests
  • ✅ Deployment.EndToEnd-VnetStorageBlobConnectivityDeploymentTests
  • ✅ Deployment.EndToEnd-VnetKeyVaultInfraDeploymentTests
  • ✅ Deployment.EndToEnd-AcaCustomRegistryDeploymentTests
  • ✅ Deployment.EndToEnd-AksStarterWithRedisDeploymentTests
  • ✅ Deployment.EndToEnd-AcrPurgeTaskDeploymentTests
  • ✅ Deployment.EndToEnd-AppServicePythonDeploymentTests
  • ✅ Deployment.EndToEnd-AcaCompactNamingUpgradeDeploymentTests
  • ✅ Deployment.EndToEnd-AcaExistingRegistryDeploymentTests
  • ✅ Deployment.EndToEnd-VnetStorageBlobInfraDeploymentTests
  • ✅ Deployment.EndToEnd-AuthenticationTests
  • ✅ Deployment.EndToEnd-AksStarterDeploymentTests

🎬 Terminal Recordings

Test Recording
DeployAzureAppConfigResourceCore ▶️ View Recording
DeployAzureContainerRegistryResourceCore ▶️ View Recording
DeployAzureEventHubsResourceCore ▶️ View Recording
DeployAzureKeyVaultResourceCore ▶️ View Recording
DeployAzureLogAnalyticsResourceCore ▶️ View Recording
DeployAzureServiceBusResourceCore ▶️ View Recording
DeployAzureStorageResourceCore ▶️ View Recording
DeployPythonFastApiTemplateToAzureAppServiceCore ▶️ View Recording
DeployPythonFastApiTemplateToAzureContainerAppsCore ▶️ View Recording
DeployPythonStarterWithPurgeTaskCore ▶️ View Recording
DeployReactTemplateToAzureAppServiceCore ▶️ View Recording
DeployStarterTemplateToAksCore ▶️ View Recording
DeployStarterTemplateToAzureContainerAppsCore ▶️ View Recording
DeployStarterTemplateWithCustomRegistryCore ▶️ View Recording
DeployStarterTemplateWithExistingRegistryCore ▶️ View Recording
DeployStarterTemplateWithKeyVaultPrivateEndpointCore ▶️ View Recording
DeployStarterTemplateWithRedisToAksCore ▶️ View Recording
DeployStarterTemplateWithStorageBlobPrivateEndpointCore ▶️ View Recording
DeployVnetKeyVaultInfrastructureCore ▶️ View Recording
DeployVnetSqlServerInfrastructureCore ▶️ View Recording
DeployVnetStorageBlobInfrastructureCore ▶️ View Recording
DeployWithCompactNamingFixesStorageCollisionCore ▶️ View Recording
DeployWithInvalidLocation_ErrorOutputIsCleanCore ▶️ View Recording
UpgradeFromGaToDevDoesNotDuplicateStorageAccountsCore ▶️ View Recording

@eerhardt
Copy link
Member Author

eerhardt commented Mar 5, 2026

@davidfowl @mitchdenny

@davidfowl davidfowl merged commit b786e2a into release/13.2 Mar 5, 2026
420 checks passed
@davidfowl davidfowl deleted the FixDeploymentTests branch March 5, 2026 04:46
@dotnet-policy-service dotnet-policy-service bot added this to the 13.2 milestone Mar 5, 2026
eerhardt added a commit to eerhardt/aspire that referenced this pull request Mar 7, 2026
…soft#14958)

The aspire init command now shows a language selection prompt when
multiple languages are available (C#, TypeScript). The 12 failing
deployment tests did not handle this new prompt, causing them to
timeout waiting for 'Aspire initialization complete'.

Adding --language csharp explicitly skips the language prompt,
restoring the expected test flow.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot AI pushed a commit that referenced this pull request Mar 10, 2026
The aspire init command now shows a language selection prompt when
multiple languages are available (C#, TypeScript). The 12 failing
deployment tests did not handle this new prompt, causing them to
timeout waiting for 'Aspire initialization complete'.

Adding --language csharp explicitly skips the language prompt,
restoring the expected test flow.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
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