diff --git a/src/Microsoft.DotNet.XHarness.CLI/CommandArguments/WASM/Arguments/JavaScriptEngineArgument.cs b/src/Microsoft.DotNet.XHarness.CLI/CommandArguments/WASM/Arguments/JavaScriptEngineArgument.cs index 9ef67a5e5..be2ce4444 100644 --- a/src/Microsoft.DotNet.XHarness.CLI/CommandArguments/WASM/Arguments/JavaScriptEngineArgument.cs +++ b/src/Microsoft.DotNet.XHarness.CLI/CommandArguments/WASM/Arguments/JavaScriptEngineArgument.cs @@ -42,5 +42,9 @@ internal enum JavaScriptEngine /// SpiderMonkey /// SpiderMonkey, + /// + /// NodeJS + /// + NodeJS, } } diff --git a/src/Microsoft.DotNet.XHarness.CLI/Commands/WASM/JS/WasmTestCommand.cs b/src/Microsoft.DotNet.XHarness.CLI/Commands/WASM/JS/WasmTestCommand.cs index df827d1a7..300d4b95b 100644 --- a/src/Microsoft.DotNet.XHarness.CLI/Commands/WASM/JS/WasmTestCommand.cs +++ b/src/Microsoft.DotNet.XHarness.CLI/Commands/WASM/JS/WasmTestCommand.cs @@ -58,11 +58,17 @@ protected override async Task InvokeInternal(ILogger logger) JavaScriptEngine.V8 => "v8", JavaScriptEngine.JavaScriptCore => "jsc", JavaScriptEngine.SpiderMonkey => "sm", + JavaScriptEngine.NodeJS => "node", _ => throw new ArgumentException("Engine not set") }; - if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows)) - engineBinary = FindEngineInPath(engineBinary + ".cmd"); + if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows)) { + if (engineBinary.Equals("node")) + engineBinary = FindEngineInPath(engineBinary + ".exe"); // NodeJS ships as .exe rather than .cmd + + else + engineBinary = FindEngineInPath(engineBinary + ".cmd"); + } var webServerCts = new CancellationTokenSource(); try