visual unitarias unit test studio pruebas c++ unit-testing visual-studio-2012 cout test-explorer

c++ - unitarias - test explorer visual studio 2017



Cómo obtener la salida de la consola en Visual Studio 2012 Unit Tests (4)

De acuerdo con Microsoft connect trx y los resultados de las pruebas están en desuso

:(

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

Tengo una prueba de unidad de C ++ administrada en VS 2012. La prueba funciona bien y puedo verificar que se ejecute un ciclo con múltiples llamadas de programación.

Sin embargo, cuando miro al explorador de prueba, la prueba se marca como aprobada, pero no hay un hipervínculo para la salida, como lo estoy acostumbrado para los proyectos de c #.

El código al final de mi prueba es

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

que puedo verificar se ejecuta mientras lo paso en el depurador. También lo he intentado con cerr pero no hay diferencia.


No sé si puedo darte una respuesta definitiva, pero puedo darte una pista.

En mi código anterior que necesitaba para salir a la ventana de la consola durante un paso de compilación personalizado, utilicé las siguientes líneas:

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

Hay una descripción en http://msdn.microsoft.com/en-us/library/8hyw4sy7(v=vs.71).aspx para _CrtDbgReport.

Para mí, esto hizo que la salida de mi C ++ administrado se mostrara a través de la ventana de producción de compilación. Espero que pueda ayudarte con las pruebas unitarias.


Para mí parece funcionar usando:

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

Después de ejecutar la prueba, puede ver el resultado en la ventana del Test Explorer haciendo clic en la output


Puede usar Debug :: WriteLine () (en el espacio de nombres System :: Diagnostics) o Console :: WriteLine () para escribir el resultado en la consola de Visual Studio 2012.

Código para la prueba (tenga en cuenta que el espacio de nombres System :: Diagnostics se ha declarado en otro lugar).

La vista del resultado de la prueba.

Después de hacer clic en el enlace "Salida":

No está usando std :: cout, pero con suerte hará lo que necesite.