シンプルなコンソールアプリがあります。通常のメインで起動され、プログラム全体がメインに格納されます。コマンド ライン パーサー ライブラリを使用します。次に、アプリケーションの単体テストを含むソリューションに 2 番目のプロジェクトを作成します。しかし、テストからメインプログラムのプロセスを開始する良い方法が見つからないようです。実際にプロセスを開始するための私の現在のコードは、次のようになります。
...
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 を試しましたが、それはとても間違っているように感じます:)