1

我有以下代码

var parameters =
    string.Format("TestSuiteDefinitions.dll /include:{0} /out:{1} /err:{2} /xml:{3}", String.Join(",", args), OutputLog, ErrorLog, ResultLog);

var p = Process.Start(GetAssemblyDirectory() + @"\NUnit\nunit-console.exe", parameters);

这允许我从我的应用程序中启动一个单独的进程,启动 NUnit 控制台以及我所需的输出。问题是实际的 NUnit 输出是唯一写入日志的内容。如果进程因其他原因失败,您在命令提示符级别从 nunit-console.exe 看到的命令输出将丢失。

我试过添加

> CommandOutput.txt

或者

| CommandOutput.txt

在 Process.Start 参数字符串的末尾,但它会引发错误,所以不喜欢那样。

谁能建议如何做到这一点?而且我不能使用 Process 的标准输出流,因为调用进程需要在另一个 Process 启动后立即关闭,因此无法保持打开读取和写入流。

4

1 回答 1

3

Process.Start不启动外壳,而只是产生一个进程。所以重定向和管道不起作用也就不足为奇了。您可以将实例传递到您可以设置的位置,并将其从. ProcessStartInfoProcess.StartRedirectStandardOutputp.StandardOutput

于 2012-05-09T14:54:42.407 回答