| File: McpServerSnapshotTests.cs | Web Access |
| Project: src\test\ProjectTemplates\Microsoft.McpServer.ProjectTemplates.IntegrationTests\Microsoft.McpServer.ProjectTemplates.Tests.csproj (Microsoft.McpServer.ProjectTemplates.Tests) |
// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. using System.Threading.Tasks; using Microsoft.Extensions.Logging; using Microsoft.Shared.ProjectTemplates.Tests; using Microsoft.TemplateEngine.Authoring.TemplateVerifier; using Microsoft.TemplateEngine.TestHelper; using Xunit; using Xunit.Abstractions; namespace Microsoft.Extensions.AI.Templates.Tests; public class McpServerSnapshotTests : TemplateSnapshotTestBase { private readonly ILogger _log; public McpServerSnapshotTests(ITestOutputHelper log) { #pragma warning disable CA2000 // Dispose objects before losing scope _log = new XunitLoggerProvider(log).CreateLogger("TestRun"); #pragma warning restore CA2000 // Dispose objects before losing scope } [Theory] [InlineData /* Defaults: --transport local --self-contained=true --aot=false --framework=net10.0 */] [InlineData("--transport=remote")] [InlineData("--self-contained=false")] [InlineData("--aot=true")] [InlineData("--framework=net8.0")] public async Task TestSnapshots(params string[] templateArgs) { string projectNamePrefix = "McpServer"; string templatePackageName = "Microsoft.McpServer.ProjectTemplates"; string templateName = "mcpserver"; TemplateVerifierOptions options = PrepareSnapshotVerifier( projectNamePrefix, templatePackageName, templateName, templateArgs, verificationExcludePatterns: ["*.http"]) // Snapshot verifier fails on .http files .WithCustomScrubbers(ScrubbersDefinition.Empty .AddUserSecretsScrubber() .AddLocalhostPortScrubber() .AddPackageReferenceScrubber()); VerificationEngine engine = new VerificationEngine(_log); await engine.Execute(options); } }