我有一个简单的控制台应用程序。它是用一个普通的 main 触发的,整个程序在 main 中返回。它使用命令行解析器库。然后我在解决方案中有第二个项目,其中包含应用程序的单元测试。但是我似乎没有找到从测试中启动主程序进程的好方法。我当前实际启动该过程的代码看起来像这样。
...
process = new Process();
process.StartInfo.FileName = "FooBar";
process.StartInfo.Arguments = arguments;
// use it to start from testing environment
process.StartInfo.UseShellExecute = false;
// redirect outputs to have it in testing console
process.StartInfo.RedirectStandardOutput = true;
process.StartInfo.RedirectStandardError = true;
...
我试过设置
process.StartInfo.WorkingDirectory
至
AppDomain.CurrentDomain.BaseDirectory
和
Environment.CurrentDirectory;
但是我是否必须为控制台应用程序可执行文件指定整个相对路径,或者是否有一种改进的方式来启动“测试”应用程序的进程?首先,我将测试作为“主”程序中的一个类,然后它工作得很好。当我将测试转移到他们自己的项目时,问题就开始了。这就是为什么我怀疑路径是问题或类似性质的东西。
我也试过 Running Program.Main 但这感觉很不对:)