From 79ec5b5ed1cc1a7abf2edda313a81875bd75ad86 Mon Sep 17 00:00:00 2001 From: codeboyzz Date: Sat, 29 Mar 2025 13:08:23 +0800 Subject: [PATCH] fix(tests): Failed to start process with command npx on Windows (#85) * fix(tests): Failed to start process with command npx on Windows platform while running mvn test --- .../client/StdioMcpAsyncClientTests.java | 14 +++++++++++--- .../client/StdioMcpSyncClientTests.java | 15 +++++++++++---- 2 files changed, 22 insertions(+), 7 deletions(-) diff --git a/mcp/src/test/java/io/modelcontextprotocol/client/StdioMcpAsyncClientTests.java b/mcp/src/test/java/io/modelcontextprotocol/client/StdioMcpAsyncClientTests.java index 9523094..c390801 100644 --- a/mcp/src/test/java/io/modelcontextprotocol/client/StdioMcpAsyncClientTests.java +++ b/mcp/src/test/java/io/modelcontextprotocol/client/StdioMcpAsyncClientTests.java @@ -22,9 +22,17 @@ class StdioMcpAsyncClientTests extends AbstractMcpAsyncClientTests { @Override protected McpClientTransport createMcpTransport() { - ServerParameters stdioParams = ServerParameters.builder("npx") - .args("-y", "@modelcontextprotocol/server-everything", "dir") - .build(); + ServerParameters stdioParams; + if (System.getProperty("os.name").toLowerCase().contains("win")) { + stdioParams = ServerParameters.builder("cmd.exe") + .args("/c", "npx.cmd", "-y", "@modelcontextprotocol/server-everything", "dir") + .build(); + } + else { + stdioParams = ServerParameters.builder("npx") + .args("-y", "@modelcontextprotocol/server-everything", "dir") + .build(); + } return new StdioClientTransport(stdioParams); } diff --git a/mcp/src/test/java/io/modelcontextprotocol/client/StdioMcpSyncClientTests.java b/mcp/src/test/java/io/modelcontextprotocol/client/StdioMcpSyncClientTests.java index 925852b..8e75c4a 100644 --- a/mcp/src/test/java/io/modelcontextprotocol/client/StdioMcpSyncClientTests.java +++ b/mcp/src/test/java/io/modelcontextprotocol/client/StdioMcpSyncClientTests.java @@ -30,10 +30,17 @@ class StdioMcpSyncClientTests extends AbstractMcpSyncClientTests { @Override protected McpClientTransport createMcpTransport() { - ServerParameters stdioParams = ServerParameters.builder("npx") - .args("-y", "@modelcontextprotocol/server-everything", "dir") - .build(); - + ServerParameters stdioParams; + if (System.getProperty("os.name").toLowerCase().contains("win")) { + stdioParams = ServerParameters.builder("cmd.exe") + .args("/c", "npx.cmd", "-y", "@modelcontextprotocol/server-everything", "dir") + .build(); + } + else { + stdioParams = ServerParameters.builder("npx") + .args("-y", "@modelcontextprotocol/server-everything", "dir") + .build(); + } return new StdioClientTransport(stdioParams); }