La mejor manera de probar la consola de la unidad c # app

Tengo una aplicación de consola simple. Se dispara con un main normal y todo el programa se repite en main. Utiliza elBiblioteca de analizador de línea de comandos. Luego tengo un segundo proyecto en la solución que contiene pruebas unitarias para la aplicación. Pero parece que no encuentro una buena manera de iniciar los procesos del programa principal a partir de las pruebas. Mi código actual para iniciar realmente el proceso es algo así.

...

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;

...

He intentado configurar

process.StartInfo.WorkingDirectory

a

AppDomain.CurrentDomain.BaseDirectory

y

Environment.CurrentDirectory;

Pero, ¿tengo que especificar la ruta relativa completa para las aplicaciones de consola ejecutables o hay una forma refinada de iniciar los procesos de la aplicación "probada"? Primero tuve mis exámenes como clase en el programa "principal" y luego funcionó bien. Los problemas comenzaron cuando cambié las pruebas a su propio proyecto. Es por eso que sospecho que un camino es el problema o algo de esa naturaleza.

También traté de ejecutar Program Program.Main pero eso se siente tan mal :)

Respuestas a la pregunta(2)

Su respuesta a la pregunta