Лучший способ модульного тестирования консольного приложения c #
У меня есть простое консольное приложение. Он запускается с обычного 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;
Но нужно ли мне указывать полный относительный путь для исполняемых файлов консольных приложений или есть усовершенствованный способ запуска процессов из "проверенного"? приложение? Сначала у меня были тесты как класс в "main" Программа, а затем она работала просто отлично. Проблемы начались, когда я переместил тесты в их собственный проект. Вот почему я подозреваю, что путь - это проблема или что-то в этом роде.
Я также попытался запустить программу Program.Main, но это так плохо :)