Захват stdout из подпроцесса, запущенного во время теста в mstest - PullRequest
0 голосов
/ 16 января 2011

Я использую MSTest для запуска некоторых тестов (в C #). Одна из процедур, которые я тестирую, создает новый процесс, и этот процесс часто выводит некоторый выводной вывод. Я хотел бы захватить этот вывод в тесте. Хотя не важно видеть, провалился ли тест, очень полезно выяснить, почему тест не удался. Как я могу это сделать?

Некоторые подробности. К сожалению, я не могу коснуться кода, который создает процесс. Хуже того, это C ++, и он вызывается через оболочку C ++ / CLI. Если я создаю консольное приложение .NET (в C #), то вывод подпроцесса, который я хочу перехватить, появляется в окне консольного приложения, когда он выполняет вызов. Когда я запускаю тот же код в контексте MSTest, при создании подпроцесса появляется новое окно, а подпроцесс выводит свой вывод в это окно. Это тот вывод, который я хотел бы получить, если это вообще возможно.

Большое спасибо!

1 Ответ

0 голосов
/ 16 января 2011

Если вы дважды щелкнете по результату теста после его завершения, вы должны увидеть страницу отчета, содержащую также стандартный вывод ... тогда вы можете увидеть здесь Перенаправление стандартного вывода одного объекта процесса на стандартный вывод другого как перенаправьте ваш дочерний процесс stdout и просто отразите это в stdout теста (т.е. вызовите Console.Write ())

...