Как получить консольный вывод в модульных тестах Visual Studio 2012

У меня есть управляемый модульный тест C ++ в VS 2012. Тест работает нормально, и я могу
убедитесь, что цикл с несколькими cout звонки выполнены.

Однако когда я смотрю на тестовый проводник, тест помечается как пройденный.
но нет гиперссылки для вывода, как я привык для C #
проекты.

Код в конце моего теста

for (int i = 0; i < 4; i++)
{
cout << parameters[i];
cout << endl;
}

который я могу проверить работает, как я шагаю по
это в отладчике. Я также пытался с
cerr но без разницы

23

Решение

Вы можете использовать Debug :: WriteLine () (в пространстве имен System :: Diagnostics) или Console :: WriteLine () для записи вывода в консоль Visual Studio 2012.

Код для теста (обратите внимание, что пространство имен System :: Diagnostics объявлено в другом месте).
Тест

Просмотр результатов теста.

введите описание изображения здесь

После нажатия на ссылку «Вывод»:

введите описание изображения здесь

Он не использует std :: cout, но, надеюсь, это сделает то, что вам нужно.

19

Другие решения

Для меня, кажется, работает с помощью:

Logger::WriteMessage("What ever message");

После запуска теста вы можете увидеть результат в Test Explorer окно, нажав на output

16

Я не знаю, что могу дать вам окончательный ответ, но я могу дать подсказку.

В моем старом коде, который должен был выводиться в окно консоли во время пользовательского этапа сборки, я использовал следующие строки:

_CrtSetReportMode(_CRT_WARN, _CRTDBG_MODE_FILE);
_CrtSetReportFile(_CRT_WARN, _CRTDBG_FILE_STDERR);

Есть описание на http://msdn.microsoft.com/en-us/library/8hyw4sy7(v=vs.71).aspx для _CrtDbgReport.

Для меня это сделало вывод из моего управляемого C ++ показом через окно вывода сборки. Надеюсь, это поможет вам с модульным тестированием.

2

По данным Microsoft Connect TRX и результаты испытаний устарели

🙁

http://connect.microsoft.com/VisualStudio/feedback/details/750184/test-results-window-does-not-show-test-results

1
По вопросам рекламы [email protected]