Revert "Revert "Update to MTP"" (#990)

This commit is contained in:
Youssef Victor 2025-11-21 14:28:42 +01:00 • committed by GitHub
commit c94cb895a7
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
8 changed files with 42 additions and 82 deletions

View file

@ -17,6 +17,7 @@ updates:
patterns: patterns:
- "xunit.*" - "xunit.*"
- "Microsoft.NET.Test.Sdk" - "Microsoft.NET.Test.Sdk"
- "Microsoft.Testing.*"
- "coverlet.*" - "coverlet.*"
- "GitHubActionsTestLogger" - "GitHubActionsTestLogger"
- "Moq" - "Moq"

View file

@ -11,6 +11,10 @@
</PropertyGroup> </PropertyGroup>
<PropertyGroup> <PropertyGroup>
<!-- This works around issues with dotnet test which are fixed in https://github.com/dotnet/sdk/pull/51794 -->
<!-- It can be safely removed once .NET SDK 10.0.101 is out and is used in the repo -->
<Configuration Condition="'$(Configuration)' == ''">Debug</Configuration>
<RepoRoot>$([System.IO.Path]::GetFullPath('$(MSBuildThisFileDirectory)'))</RepoRoot> <RepoRoot>$([System.IO.Path]::GetFullPath('$(MSBuildThisFileDirectory)'))</RepoRoot>
<ArtifactsDir Condition="'$(ArtifactsDir)' == ''">$([MSBuild]::NormalizeDirectory('$(RepoRoot)', 'artifacts'))</ArtifactsDir> <ArtifactsDir Condition="'$(ArtifactsDir)' == ''">$([MSBuild]::NormalizeDirectory('$(RepoRoot)', 'artifacts'))</ArtifactsDir>
<ArtifactsObjDir>$([MSBuild]::NormalizeDirectory('$(ArtifactsDir)', 'obj'))</ArtifactsObjDir> <ArtifactsObjDir>$([MSBuild]::NormalizeDirectory('$(ArtifactsDir)', 'obj'))</ArtifactsObjDir>
@ -29,8 +33,9 @@
</PropertyGroup> </PropertyGroup>
<PropertyGroup> <PropertyGroup>
<VSTestLogger Condition="'$(VSTestLogger)' == ''">trx%3bLogFileName=$(MSBuildProjectName).$(TargetFramework).$(OS).trx</VSTestLogger> <UseMicrosoftTestingPlatformRunner>true</UseMicrosoftTestingPlatformRunner>
<VSTestResultsDirectory Condition="'$(VSTestResultsDirectory)' == ''">$(ArtifactsTestResultsDir)</VSTestResultsDirectory> <_MTPResultsDirectory>$(ArtifactsTestResultsDir)</_MTPResultsDirectory>
<TestingPlatformCommandLineArguments>$(TestingPlatformCommandLineArguments) --results-directory $(_MTPResultsDirectory) --report-trx --report-trx-filename $(MSBuildProjectName).$(TargetFramework).$(OS).trx</TestingPlatformCommandLineArguments>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition="'$(GITHUB_ACTIONS)' == 'true'"> <PropertyGroup Condition="'$(GITHUB_ACTIONS)' == 'true'">

View file

@ -4,6 +4,7 @@
<System8Version>8.0.22</System8Version> <System8Version>8.0.22</System8Version>
<System9Version>9.0.11</System9Version> <System9Version>9.0.11</System9Version>
<System10Version>10.0.0</System10Version> <System10Version>10.0.0</System10Version>
<MicrosoftTestingPlatformVersion>2.0.2</MicrosoftTestingPlatformVersion>
</PropertyGroup> </PropertyGroup>
<!-- Product dependencies shared --> <!-- Product dependencies shared -->
@ -60,11 +61,10 @@
<!-- Testing dependencies --> <!-- Testing dependencies -->
<ItemGroup> <ItemGroup>
<PackageVersion Include="Anthropic.SDK" Version="5.8.0" /> <PackageVersion Include="Anthropic.SDK" Version="5.8.0" />
<PackageVersion Include="coverlet.collector" Version="6.0.4"> <PackageVersion Include="Microsoft.Testing.Extensions.CodeCoverage" Version="18.1.0" />
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets> <PackageVersion Include="Microsoft.Testing.Extensions.HangDump" Version="$(MicrosoftTestingPlatformVersion)" />
<PrivateAssets>all</PrivateAssets> <PackageVersion Include="Microsoft.Testing.Extensions.CrashDump" Version="$(MicrosoftTestingPlatformVersion)" />
</PackageVersion> <PackageVersion Include="Microsoft.Testing.Extensions.TrxReport" Version="$(MicrosoftTestingPlatformVersion)" />
<PackageVersion Include="GitHubActionsTestLogger" Version="2.4.1" />
<PackageVersion Include="Microsoft.Extensions.AI.OpenAI" Version="10.0.0-preview.1.25559.3" /> <PackageVersion Include="Microsoft.Extensions.AI.OpenAI" Version="10.0.0-preview.1.25559.3" />
<PackageVersion Include="Microsoft.Extensions.DependencyInjection" Version="$(System10Version)" /> <PackageVersion Include="Microsoft.Extensions.DependencyInjection" Version="$(System10Version)" />
<PackageVersion Include="Microsoft.Extensions.Hosting" Version="$(System10Version)" /> <PackageVersion Include="Microsoft.Extensions.Hosting" Version="$(System10Version)" />
@ -72,7 +72,6 @@
<PackageVersion Include="Microsoft.Extensions.Logging.Console" Version="$(System10Version)" /> <PackageVersion Include="Microsoft.Extensions.Logging.Console" Version="$(System10Version)" />
<PackageVersion Include="Microsoft.Extensions.Options" Version="$(System10Version)" /> <PackageVersion Include="Microsoft.Extensions.Options" Version="$(System10Version)" />
<PackageVersion Include="Microsoft.Extensions.TimeProvider.Testing" Version="$(System10Version)" /> <PackageVersion Include="Microsoft.Extensions.TimeProvider.Testing" Version="$(System10Version)" />
<PackageVersion Include="Microsoft.NET.Test.Sdk" Version="18.0.1" />
<PackageVersion Include="Moq" Version="4.20.72" /> <PackageVersion Include="Moq" Version="4.20.72" />
<PackageVersion Include="OpenTelemetry" Version="1.14.0" /> <PackageVersion Include="OpenTelemetry" Version="1.14.0" />
<PackageVersion Include="OpenTelemetry.Exporter.InMemory" Version="1.14.0" /> <PackageVersion Include="OpenTelemetry.Exporter.InMemory" Version="1.14.0" />
@ -87,8 +86,7 @@
<PackageVersion Include="Serilog.Sinks.File" Version="7.0.0" /> <PackageVersion Include="Serilog.Sinks.File" Version="7.0.0" />
<PackageVersion Include="Serilog" Version="4.3.0" /> <PackageVersion Include="Serilog" Version="4.3.0" />
<PackageVersion Include="System.Linq.AsyncEnumerable" Version="$(System10Version)" /> <PackageVersion Include="System.Linq.AsyncEnumerable" Version="$(System10Version)" />
<PackageVersion Include="xunit.v3" Version="3.2.0" /> <PackageVersion Include="xunit.v3.mtp-v2" Version="3.2.0" />
<PackageVersion Include="xunit.runner.visualstudio" Version="3.1.5" />
<PackageVersion Include="System.Net.Http" Version="4.3.4" /> <PackageVersion Include="System.Net.Http" Version="4.3.4" />
<PackageVersion Include="JsonSchema.Net" Version="7.4.0" /> <PackageVersion Include="JsonSchema.Net" Version="7.4.0" />
</ItemGroup> </ItemGroup>

View file

@ -18,18 +18,15 @@ build: restore
test: build test: build
dotnet test \ dotnet test \
--no-build \ --no-build \
--no-progress \
--configuration $(CONFIGURATION) \ --configuration $(CONFIGURATION) \
--filter '(Execution!=Manual)' \ --filter-not-trait 'Execution=Manual' \
--blame \ --crashdump \
--blame-crash \ --hangdump \
--blame-hang-timeout 7m \ --hangdump-timeout 7m \
--diag "$(ARTIFACT_PATH)/diag.txt" \ --coverage \
--logger "trx" \ --coverage-output-format cobertura \
--logger "GitHubActions;summary.includePassedTests=true;summary.includeSkippedTests=true" \ -p:_MTPResultsDirectory=$(ARTIFACT_PATH)/testresults \
--collect "XPlat Code Coverage" \
--results-directory $(ARTIFACT_PATH)/testresults \
-- \
RunConfiguration.CollectSourceInformation=true
pack: restore pack: restore
dotnet pack --no-restore --configuration $(CONFIGURATION) dotnet pack --no-restore --configuration $(CONFIGURATION)

View file

@ -2,5 +2,8 @@
"sdk": { "sdk": {
"version": "10.0.100", "version": "10.0.100",
"rollForward": "minor" "rollForward": "minor"
},
"test": {
"runner": "Microsoft.Testing.Platform"
} }
} }

View file

@ -3,29 +3,20 @@
<PropertyGroup> <PropertyGroup>
<TargetFramework>net9.0</TargetFramework> <TargetFramework>net9.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings> <ImplicitUsings>enable</ImplicitUsings>
<IsTestProject>true</IsTestProject> <OutputType>Exe</OutputType>
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="coverlet.collector"> <PackageReference Include="Microsoft.Testing.Extensions.CodeCoverage" />
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets> <PackageReference Include="Microsoft.Testing.Extensions.HangDump" />
<PrivateAssets>all</PrivateAssets> <PackageReference Include="Microsoft.Testing.Extensions.CrashDump" />
</PackageReference> <PackageReference Include="Microsoft.Testing.Extensions.TrxReport" />
<PackageReference Include="GitHubActionsTestLogger">
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
<PrivateAssets>all</PrivateAssets>
</PackageReference>
<PackageReference Include="Microsoft.CodeAnalysis.CSharp" /> <PackageReference Include="Microsoft.CodeAnalysis.CSharp" />
<PackageReference Include="Microsoft.CodeAnalysis.Analyzers"> <PackageReference Include="Microsoft.CodeAnalysis.Analyzers">
<PrivateAssets>all</PrivateAssets> <PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets> <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference> </PackageReference>
<PackageReference Include="Microsoft.NET.Test.Sdk" /> <PackageReference Include="xunit.v3.mtp-v2" />
<PackageReference Include="xunit.v3" />
<PackageReference Include="xunit.runner.visualstudio">
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
<PrivateAssets>all</PrivateAssets>
</PackageReference>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>

View file

@ -4,8 +4,7 @@
<TargetFrameworks>net10.0;net9.0;net8.0</TargetFrameworks> <TargetFrameworks>net10.0;net9.0;net8.0</TargetFrameworks>
<ImplicitUsings>enable</ImplicitUsings> <ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable> <Nullable>enable</Nullable>
<IsPackable>false</IsPackable> <OutputType>Exe</OutputType>
<IsTestProject>true</IsTestProject>
<RootNamespace>ModelContextProtocol.AspNetCore.Tests</RootNamespace> <RootNamespace>ModelContextProtocol.AspNetCore.Tests</RootNamespace>
</PropertyGroup> </PropertyGroup>
@ -14,41 +13,25 @@
<JsonSerializerIsReflectionEnabledByDefault>false</JsonSerializerIsReflectionEnabledByDefault> <JsonSerializerIsReflectionEnabledByDefault>false</JsonSerializerIsReflectionEnabledByDefault>
</PropertyGroup> </PropertyGroup>
<PropertyGroup>
<!-- Without this, tests are currently not showing results until all tests complete
https://xunit.net/docs/getting-started/v3/microsoft-testing-platform
-->
<DisableTestingPlatformServerCapability>true</DisableTestingPlatformServerCapability>
</PropertyGroup>
<ItemGroup> <ItemGroup>
<Compile Include="..\Common\**\*.cs" /> <Compile Include="..\Common\**\*.cs" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="coverlet.collector"> <PackageReference Include="Microsoft.Testing.Extensions.CodeCoverage" />
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets> <PackageReference Include="Microsoft.Testing.Extensions.HangDump" />
<PrivateAssets>all</PrivateAssets> <PackageReference Include="Microsoft.Testing.Extensions.CrashDump" />
</PackageReference> <PackageReference Include="Microsoft.Testing.Extensions.TrxReport" />
<PackageReference Include="GitHubActionsTestLogger">
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
<PrivateAssets>all</PrivateAssets>
</PackageReference>
<PackageReference Include="Microsoft.AspNetCore.Authentication.JwtBearer" /> <PackageReference Include="Microsoft.AspNetCore.Authentication.JwtBearer" />
<PackageReference Include="Microsoft.Extensions.AI" /> <PackageReference Include="Microsoft.Extensions.AI" />
<PackageReference Include="Microsoft.Extensions.AI.OpenAI" /> <PackageReference Include="Microsoft.Extensions.AI.OpenAI" />
<PackageReference Include="Microsoft.Extensions.Logging" /> <PackageReference Include="Microsoft.Extensions.Logging" />
<PackageReference Include="Microsoft.Extensions.Logging.Console" /> <PackageReference Include="Microsoft.Extensions.Logging.Console" />
<PackageReference Include="Microsoft.Extensions.TimeProvider.Testing" /> <PackageReference Include="Microsoft.Extensions.TimeProvider.Testing" />
<PackageReference Include="Microsoft.NET.Test.Sdk" />
<PackageReference Include="Moq" /> <PackageReference Include="Moq" />
<PackageReference Include="OpenTelemetry" /> <PackageReference Include="OpenTelemetry" />
<PackageReference Include="OpenTelemetry.Exporter.InMemory" /> <PackageReference Include="OpenTelemetry.Exporter.InMemory" />
<PackageReference Include="xunit.v3" /> <PackageReference Include="xunit.v3.mtp-v2" />
<PackageReference Include="xunit.runner.visualstudio">
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
<PrivateAssets>all</PrivateAssets>
</PackageReference>
</ItemGroup> </ItemGroup>
<ItemGroup Condition="!$([MSBuild]::IsTargetFrameworkCompatible('$(TargetFramework)', 'net10.0'))"> <ItemGroup Condition="!$([MSBuild]::IsTargetFrameworkCompatible('$(TargetFramework)', 'net10.0'))">

View file

@ -6,8 +6,6 @@
<ImplicitUsings>enable</ImplicitUsings> <ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable> <Nullable>enable</Nullable>
<IsPackable>false</IsPackable>
<IsTestProject>true</IsTestProject>
<RootNamespace>ModelContextProtocol.Tests</RootNamespace> <RootNamespace>ModelContextProtocol.Tests</RootNamespace>
<!-- https://github.com/dotnet/sdk/issues/51060 --> <!-- https://github.com/dotnet/sdk/issues/51060 -->
<NoWarn>$(NoWarn);NU1903;NU1902</NoWarn> <NoWarn>$(NoWarn);NU1903;NU1902</NoWarn>
@ -18,13 +16,6 @@
<JsonSerializerIsReflectionEnabledByDefault>false</JsonSerializerIsReflectionEnabledByDefault> <JsonSerializerIsReflectionEnabledByDefault>false</JsonSerializerIsReflectionEnabledByDefault>
</PropertyGroup> </PropertyGroup>
<PropertyGroup>
<!-- Without this, tests are currently not showing results until all tests complete
https://xunit.net/docs/getting-started/v3/microsoft-testing-platform
-->
<DisableTestingPlatformServerCapability>true</DisableTestingPlatformServerCapability>
</PropertyGroup>
<ItemGroup> <ItemGroup>
<Compile Include="..\Common\**\*.cs" /> <Compile Include="..\Common\**\*.cs" />
</ItemGroup> </ItemGroup>
@ -35,29 +26,20 @@
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="coverlet.collector"> <PackageReference Include="Microsoft.Testing.Extensions.CodeCoverage" />
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets> <PackageReference Include="Microsoft.Testing.Extensions.HangDump" />
<PrivateAssets>all</PrivateAssets> <PackageReference Include="Microsoft.Testing.Extensions.CrashDump" />
</PackageReference> <PackageReference Include="Microsoft.Testing.Extensions.TrxReport" />
<PackageReference Include="GitHubActionsTestLogger">
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
<PrivateAssets>all</PrivateAssets>
</PackageReference>
<PackageReference Include="Microsoft.Extensions.AI" /> <PackageReference Include="Microsoft.Extensions.AI" />
<PackageReference Include="Microsoft.Extensions.AI.OpenAI" /> <PackageReference Include="Microsoft.Extensions.AI.OpenAI" />
<PackageReference Include="Microsoft.Extensions.Logging" /> <PackageReference Include="Microsoft.Extensions.Logging" />
<PackageReference Include="Microsoft.Extensions.Logging.Console" /> <PackageReference Include="Microsoft.Extensions.Logging.Console" />
<PackageReference Include="Microsoft.NET.Test.Sdk" />
<PackageReference Include="Moq" /> <PackageReference Include="Moq" />
<PackageReference Include="OpenTelemetry" /> <PackageReference Include="OpenTelemetry" />
<PackageReference Include="OpenTelemetry.Exporter.InMemory" /> <PackageReference Include="OpenTelemetry.Exporter.InMemory" />
<PackageReference Include="Serilog" /> <PackageReference Include="Serilog" />
<PackageReference Include="JsonSchema.Net" /> <PackageReference Include="JsonSchema.Net" />
<PackageReference Include="xunit.v3" /> <PackageReference Include="xunit.v3.mtp-v2" />
<PackageReference Include="xunit.runner.visualstudio">
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
<PrivateAssets>all</PrivateAssets>
</PackageReference>
</ItemGroup> </ItemGroup>
<ItemGroup Condition="!$([MSBuild]::IsTargetFrameworkCompatible('$(TargetFramework)', 'net10.0'))"> <ItemGroup Condition="!$([MSBuild]::IsTargetFrameworkCompatible('$(TargetFramework)', 'net10.0'))">