Search code examples
c#cmdcommand-line-interfacenewmanpostman-newman

Command hanging in C# when running Postman's Newman command


I'm trying to use cmd CLI to excute a newman collection run. However when the process is running it's getting stuck and never finishes processing.

Any suggestions on how to deal with that?

string cmdCommand="newman run demo.postman_collection.json --env-var HTTP_PROXY --insecure";
int TotalTimeout= 150000;
CliProcess = new System.Diagnostics.Process();
System.Diagnostics.ProcessStartInfo startInfo = new 
System.Diagnostics.ProcessStartInfo();
if (_inputDir != null)
{
    startInfo.WorkingDirectory = _inputDir;
}
//startInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
startInfo.CreateNoWindow = false;
startInfo.FileName = "cmd.exe";
startInfo.Arguments = "/C "+cmdCommand;
startInfo.UseShellExecute = false;
startInfo.RedirectStandardError = true;
startInfo.RedirectStandardInput = true;
bool processExited;            
startInfo.RedirectStandardOutput = false;
CliProcess.StartInfo = startInfo;            
CliProcess.Start();
CliProcess.StandardInput.WriteLine("exit");
//CliProcess.BeginOutputReadLine();
//CliProcess.BeginErrorReadLine();
//CliProcess.Close();
processExited = CliProcess.WaitForExit(TotalTimeout);
//                //&& outputWaitHandle.WaitOne(TotalTimeout) && errorWaitHandle.WaitOne(TotalTimeout);
//CliProcess.CancelOutputRead();
//CliProcess.CancelErrorRead();
//ExitCode = GetProcessExitCode();
//CliProcess.Kill();
//}

//Wait additional minute for the process to exit
if (!processExited)
{
    KillNewman();
    TraceLogger.Instance.LogMessage(TraceLevel.Warning, MsgSrc, "[SendCmdCommand(string cmdCommand)] Newman process was killed due to timeout");
}

This is the most I can get out of it:

cmd result

It gets stuck here^ and never continues.


Solution

  • the problem was due to the fact that the proxy was misconfigured so the request was sent trying to get to an unresponsive proxy server... So in conclusion, there was nothing wrong with the code itself.