diff --git a/core/Microsoft.Mcp.Core/tests/Microsoft.Mcp.Tests/Helpers/TestEnvironment.cs b/core/Microsoft.Mcp.Core/tests/Microsoft.Mcp.Tests/Helpers/TestEnvironment.cs index 6886aae237..591cec2309 100644 --- a/core/Microsoft.Mcp.Core/tests/Microsoft.Mcp.Tests/Helpers/TestEnvironment.cs +++ b/core/Microsoft.Mcp.Core/tests/Microsoft.Mcp.Tests/Helpers/TestEnvironment.cs @@ -34,4 +34,19 @@ public static void SetAzureSubscriptionId(string subscriptionId) /// public static void ClearAzureSubscriptionId() => Environment.SetEnvironmentVariable(EnvironmentHelpers.AzureSubscriptionIdEnvironmentVariable, null); + + /// + /// Skips the test if a default subscription is configured via Azure CLI profile or AZURE_SUBSCRIPTION_ID. + /// This is useful for tests that validate missing required --subscription parameters, + /// which have fallback to default subscription sources in SubscriptionCommand. + /// + public static void SkipIfDefaultSubscriptionConfigured() + { + if (!string.IsNullOrEmpty(CommandHelper.GetDefaultSubscription())) + { + Xunit.Assert.Skip( + "An Azure CLI default subscription is configured; cannot validate missing --subscription. " + + "Run 'az logout' or 'az account clear' to clear the profile, then restart the test runner."); + } + } } diff --git a/tools/Azure.Mcp.Tools.ResourceHealth/tests/Azure.Mcp.Tools.ResourceHealth.UnitTests/AvailabilityStatus/AvailabilityStatusGetCommandTests.cs b/tools/Azure.Mcp.Tools.ResourceHealth/tests/Azure.Mcp.Tools.ResourceHealth.UnitTests/AvailabilityStatus/AvailabilityStatusGetCommandTests.cs index 00b9147e9b..e9546dbfaa 100644 --- a/tools/Azure.Mcp.Tools.ResourceHealth/tests/Azure.Mcp.Tools.ResourceHealth.UnitTests/AvailabilityStatus/AvailabilityStatusGetCommandTests.cs +++ b/tools/Azure.Mcp.Tools.ResourceHealth/tests/Azure.Mcp.Tools.ResourceHealth.UnitTests/AvailabilityStatus/AvailabilityStatusGetCommandTests.cs @@ -6,6 +6,7 @@ using Azure.Mcp.Tools.ResourceHealth.Services; using Microsoft.Mcp.Core.Options; using Microsoft.Mcp.Tests.Client; +using Microsoft.Mcp.Tests.Helpers; using NSubstitute; using NSubstitute.ExceptionExtensions; using Xunit; @@ -172,6 +173,11 @@ public async Task ExecuteAsync_HandlesException_WhenListingResources() [InlineData("--subscription")] public async Task ExecuteAsync_ReturnsError_WhenRequiredParameterIsMissing(string missingParameter) { + // The subscription option falls back to the Azure CLI profile or AZURE_SUBSCRIPTION_ID env var. + // Skip if a CLI profile default is present so the test only runs when + // the missing-subscription path is actually exercised. + TestEnvironment.SkipIfDefaultSubscriptionConfigured(); + var argsList = new List(); if (missingParameter != "--subscription") { diff --git a/tools/Azure.Mcp.Tools.ResourceHealth/tests/Azure.Mcp.Tools.ResourceHealth.UnitTests/ServiceHealthEvents/ServiceHealthEventsListCommandTests.cs b/tools/Azure.Mcp.Tools.ResourceHealth/tests/Azure.Mcp.Tools.ResourceHealth.UnitTests/ServiceHealthEvents/ServiceHealthEventsListCommandTests.cs index c87e57371a..5ecf953a34 100644 --- a/tools/Azure.Mcp.Tools.ResourceHealth/tests/Azure.Mcp.Tools.ResourceHealth.UnitTests/ServiceHealthEvents/ServiceHealthEventsListCommandTests.cs +++ b/tools/Azure.Mcp.Tools.ResourceHealth/tests/Azure.Mcp.Tools.ResourceHealth.UnitTests/ServiceHealthEvents/ServiceHealthEventsListCommandTests.cs @@ -6,6 +6,7 @@ using Azure.Mcp.Tools.ResourceHealth.Services; using Microsoft.Mcp.Core.Options; using Microsoft.Mcp.Tests.Client; +using Microsoft.Mcp.Tests.Helpers; using NSubstitute; using NSubstitute.ExceptionExtensions; using Xunit; @@ -25,6 +26,14 @@ public class ServiceHealthEventsListCommandTests : CommandUnitTestsBase