Есть библиотека с функцией записи сообщения на консоль текущего консольного приложения (Console.Write("Test")). Есть необходимость её протестировать. Тестирование заключается в оценке результата вывода функции на консоль (т.е. оценке строки, полученной из буфера консоли). Есть стандартный инструмент для тестирования: проект модульного теста VS 2012. Есть инструмент для считывания буфера консоли — WinAPI-функция ReadConsoleOutput. При применении в консольном приложении функция работает отлично.
PD>http://msdn.microsoft.com/en-us/library/windows/desktop/ms684965(v=vs.85).aspx
PD>http://stackoverflow.com/questions/12355378/read-from-location-on-console-c-sharp
Беда в том, что модульный тест — это не консольное приложение. Если попытаться вызвать функцию Console.Write("Test") в НЕконсольном приложении, она будет выполнена без к.-л. Exceptions. Но в консольный буфер, судя по всему, ничего не попадёт. По крайней мере вызов ReadConsoleOutput демонстрирует пустые строки.
Можно ли как-то "включить" работу с консолью в неконсольном приложении? Пойдёт и с "невидимым" окном консоли, лишь бы данные туда писались. Спасибо.