|
1 | 1 | using System.Diagnostics; |
| 2 | +using System.Reflection; |
2 | 3 | using System.Text; |
3 | 4 | using System.Text.RegularExpressions; |
4 | 5 | using ModelContextProtocol.Tests.Utils; |
@@ -53,11 +54,16 @@ public ClientConformanceTests(ITestOutputHelper output) |
53 | 54 | "auth/client-credentials-basic" |
54 | 55 | ]; |
55 | 56 |
|
| 57 | + private static string GetConformanceVersion() => |
| 58 | + typeof(ClientConformanceTests).Assembly.GetCustomAttributes<AssemblyMetadataAttribute>().FirstOrDefault(a => a.Key is "McpConformanceVersion")?.Value ?? |
| 59 | + throw new InvalidOperationException("McpConformanceVersion not found in assembly metadata"); |
| 60 | + |
56 | 61 | [Fact(Skip = "npx is not installed. Skipping client conformance tests.", SkipUnless = nameof(IsNpxInstalled))] |
57 | 62 | public async Task VerifyAllConformanceTestsAreListed() |
58 | 63 | { |
59 | 64 | // Get the list of available conformance tests from the suite |
60 | | - var startInfo = NodeHelpers.NpxStartInfo("-y @modelcontextprotocol/conformance list --client"); |
| 65 | + // Version is configured in Directory.Packages.props for central management |
| 66 | + var startInfo = NodeHelpers.NpxStartInfo($"-y @modelcontextprotocol/conformance@{GetConformanceVersion()} list --client"); |
61 | 67 |
|
62 | 68 | var outputBuilder = new StringBuilder(); |
63 | 69 | var process = new Process { StartInfo = startInfo }; |
@@ -180,7 +186,8 @@ public async Task RunConformanceTest(string scenario) |
180 | 186 | $"ConformanceClient executable not found at: {conformanceClientPath}"); |
181 | 187 | } |
182 | 188 |
|
183 | | - var startInfo = NodeHelpers.NpxStartInfo($"-y @modelcontextprotocol/conformance client --scenario {scenario} --command \"{conformanceClientPath} {scenario}\""); |
| 189 | + // Version is configured in Directory.Packages.props for central management |
| 190 | + var startInfo = NodeHelpers.NpxStartInfo($"-y @modelcontextprotocol/conformance@{GetConformanceVersion()} client --scenario {scenario} --command \"{conformanceClientPath} {scenario}\""); |
184 | 191 |
|
185 | 192 | var outputBuilder = new StringBuilder(); |
186 | 193 | var errorBuilder = new StringBuilder(); |
|
0 commit comments